Below is a summary table by census topic and sub-topic vs. by geographic area. I want to show instead of the sum, the percentage.
Select Analysis from the menu. In the drop down menu, select Create Calculated Field…. Create “Percent of Total” with the following formula.
Drop the “Percent of Total” from Measures to the Text icon in Marks.
Month: December 2018
Tableau: Hierarchical Filter
- Organize data into hierarchy by drag dimension to other dimension. In the example, the Topic is a hierarchy structure, with L1Topic>L2Topic>Item.
- Hierarchy structure can be used for Conditional filter. In the following examples, when the L1Topic is selected for Mobility or Labour main topic respectively, the L2Topic automatically shows only the associated sub-topics.
- Sort field by value of another field. Before sorting the L2Topic and Item fields, the rows are in alphabetical order as default.
Select sort for the field and choose sort by field, select Item ID as field name and choose sum as aggregation method.
The L2Topic and Item are now ordered by Item ID which doesn’t have to show in the result table.
4. Hierarchical Filter Configuration
- In the filter, select only relevant values for the hierarchical filter to take effect.
- When data source are linked, the “Only Relevant Values”, “All Values in Hierarchy”, and “All Values in Database” may disappear, then you will not be able to use the hierarchical filter.
SAS: Reading Census Data
Census data is exceptionally large. The 2016 census profile for Ontario is 4.5G and has more than 46,694,909 lines of records. To extract the data efficiently, StatsCan provides a csv file that identifies the starting row number for each geography. Using this file, you can compile the parameter list for the geographical area of interest at the selected geographic level, eg. province level, census division level, and census subdivision level.
Census file can be downloaded at link
Step 1: Compile parameter lists
%put &name.; Canada Ontario Durham York Toronto Peel Halton %put &start.; 2 2249 7287023 9513800 12198965 20521853 25289987 %put &end.; 2248 4495 7289269 9516046 12201211 20524099 25292233
Step 2: Extract and Compile data
%macro ext (namelst=, startlst=, endlst=); proc datasets library=work noprint; delete census; quit; %let i=1; %do %while (%scan(&namelst., &i, ' ') ne ); %let parm1=%scan(&namelst., &i, ' '); %let parm2=%scan(&startlst., &i, ' '); %let parm3=%scan(&endlst., &i, ' '); data census_&parm1.; infile 'X:\Work\Stats Can\98-401-X2016044_ONTARIO_eng_CSV\98-401-X2016044_ONTARIO_English_CSV_data.csv' delimiter = ',' firstobs=&parm2. obs=&parm3. TRUNCOVER DSD LRECL=32767 ; INFORMAT year 8. geo_code $13. geo_level 8. geo_name $80. gnr 8.1 gnr_lf 8.1 quality_flag $5. alt_geo_code 8. Item $50. itemID 8. Notes 8. Total 8. Male $8. Female $8. ; FORMAT year 8. geo_code $13. geo_level 8. geo_name $50. gnr 8.1 gnr_lf 8.1 quality_flag $5. alt_geo_code 8. Item $80. itemID 8. Notes 8. Total 8. Male $8. Female $8. ; input year geo_code $ geo_level geo_name $ gnr gnr_lf quality_flag alt_geo_code Item $ itemID Notes Total Male $ Female $ ; run; proc append base = census data = census_&parm1.; run; %let i = %eval (&i +1); %end; %mend ext; %ext (namelst=&name., startlst=&start., endlst=&end. );
The resulting dataset is only 4.1mb, which you can manipulate efficiently.
SAS: Convert format catalogs from 32bit to 64bit
Reference: http://support.sas.com/kb/44/047.html
Error message:
ERROR: File FORMATS.CATALOG was created for a different operating system.
Step 1: In windows 32-bit SAS, create a transport file (.cpt) with PROC CPORT and file option.
libname my32 'X:\Work\SAS\formats'; /* path where commonfmt.sas7bcat exists */ filename cat1 'X:\Work\SAS\formats\commonfmt.cpt'; /* transport file you are creating */ proc cport lib=my32 file=cat1 memtype=catalog; select commonfmt; run;
The .cpt file will contain the format information of commonfmt.sas7bcat catalog file.
Step 2: In windows 64-bit SAS, unload the transport file (.cpt) using PROC CIMPORT and infile option.
libname my64 'X:\Work\SAS\format64'; /* path to store the new Formats.sas7bcat file */ filename trans1 'X:\Work\SAS\formats\commonfmt.cpt'; /* same as in Step 1 above */ proc cimport infile=trans1 lib=my64; run;
Step 3: Check the formats in windows 64-bit SAS.
libname sasfmt 'X:\Work\SAS\format64'; PROC CATALOG CATALOG = SASFMT.COMMONFMT; CONTENTS; QUIT;