LANGUAGE POPULARITY & DIFFICULTY DATA ANALYSIS USING SAS DATA STEP | PROC SQL | PROC MEANS | PROC RANK | PROC UNIVARIATE | MACROS | DATE FUNCTIONS (MDY-INTNX-INTCK) | APPEND | MERGE | TRANSPOSE
options nocenter;
1.LANGUAGES MASTER DATASET CREATION
data languages_master;
length Language_Name $15 Region $15 Introduced_Date $9;
format Review_Year 4.;
input Language_Name $ Speakers Region $ Difficulty_Level Countries_Count
Introduced_Year;
/* Store historical date safely as character */
Introduced_Date = cats('01JAN', Introduced_Year);
/* Review year after 5 years */
Review_Year = Introduced_Year + 5;
datalines;
English 1500 Global 2 60 1600
Mandarin 1100 Asia 5 3 1200
Hindi 600 Asia 3 4 1500
Spanish 550 Europe 2 21 1400
French 300 Europe 3 29 1300
Arabic 310 MiddleEast 4 25 700
Russian 260 Europe 4 4 900
Portuguese 260 Europe 2 10 1500
Bengali 230 Asia 3 2 1200
Japanese 125 Asia 5 1 800
German 90 Europe 3 6 1100
Korean 80 Asia 4 2 900
Italian 65 Europe 2 4 1400
Turkish 75 Europe 3 2 1100
;
run;
proc print data=languages_master;
run;
OUTPUT:
| Obs | Language_Name | Region | Introduced_Date | Review_Year | Speakers | Difficulty_Level | Countries_Count | Introduced_Year |
|---|---|---|---|---|---|---|---|---|
| 1 | English | Global | 01JAN1600 | 1605 | 1500 | 2 | 60 | 1600 |
| 2 | Mandarin | Asia | 01JAN1200 | 1205 | 1100 | 5 | 3 | 1200 |
| 3 | Hindi | Asia | 01JAN1500 | 1505 | 600 | 3 | 4 | 1500 |
| 4 | Spanish | Europe | 01JAN1400 | 1405 | 550 | 2 | 21 | 1400 |
| 5 | French | Europe | 01JAN1300 | 1305 | 300 | 3 | 29 | 1300 |
| 6 | Arabic | MiddleEast | 01JAN700 | 705 | 310 | 4 | 25 | 700 |
| 7 | Russian | Europe | 01JAN900 | 905 | 260 | 4 | 4 | 900 |
| 8 | Portuguese | Europe | 01JAN1500 | 1505 | 260 | 2 | 10 | 1500 |
| 9 | Bengali | Asia | 01JAN1200 | 1205 | 230 | 3 | 2 | 1200 |
| 10 | Japanese | Asia | 01JAN800 | 805 | 125 | 5 | 1 | 800 |
| 11 | German | Europe | 01JAN1100 | 1105 | 90 | 3 | 6 | 1100 |
| 12 | Korean | Asia | 01JAN900 | 905 | 80 | 4 | 2 | 900 |
| 13 | Italian | Europe | 01JAN1400 | 1405 | 65 | 2 | 4 | 1400 |
| 14 | Turkish | Europe | 01JAN1100 | 1105 | 75 | 3 | 2 | 1100 |
2.DATES PRACTICE
data languages_dates;
set languages_master;
/* Reference year instead of SAS date */
Reference_Year = 2026;
/* Correct calculation using years */
Years_Since_Intro = Reference_Year - Introduced_Year;
run;
proc print data=languages_dates;
run;
OUTPUT:
| Obs | Language_Name | Region | Introduced_Date | Review_Year | Speakers | Difficulty_Level | Countries_Count | Introduced_Year | Reference_Year | Years_Since_Intro |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | English | Global | 01JAN1600 | 1605 | 1500 | 2 | 60 | 1600 | 2026 | 426 |
| 2 | Mandarin | Asia | 01JAN1200 | 1205 | 1100 | 5 | 3 | 1200 | 2026 | 826 |
| 3 | Hindi | Asia | 01JAN1500 | 1505 | 600 | 3 | 4 | 1500 | 2026 | 526 |
| 4 | Spanish | Europe | 01JAN1400 | 1405 | 550 | 2 | 21 | 1400 | 2026 | 626 |
| 5 | French | Europe | 01JAN1300 | 1305 | 300 | 3 | 29 | 1300 | 2026 | 726 |
| 6 | Arabic | MiddleEast | 01JAN700 | 705 | 310 | 4 | 25 | 700 | 2026 | 1326 |
| 7 | Russian | Europe | 01JAN900 | 905 | 260 | 4 | 4 | 900 | 2026 | 1126 |
| 8 | Portuguese | Europe | 01JAN1500 | 1505 | 260 | 2 | 10 | 1500 | 2026 | 526 |
| 9 | Bengali | Asia | 01JAN1200 | 1205 | 230 | 3 | 2 | 1200 | 2026 | 826 |
| 10 | Japanese | Asia | 01JAN800 | 805 | 125 | 5 | 1 | 800 | 2026 | 1226 |
| 11 | German | Europe | 01JAN1100 | 1105 | 90 | 3 | 6 | 1100 | 2026 | 926 |
| 12 | Korean | Asia | 01JAN900 | 905 | 80 | 4 | 2 | 900 | 2026 | 1126 |
| 13 | Italian | Europe | 01JAN1400 | 1405 | 65 | 2 | 4 | 1400 | 2026 | 626 |
| 14 | Turkish | Europe | 01JAN1100 | 1105 | 75 | 3 | 2 | 1100 | 2026 | 926 |
3.PROC SQL – DATA QUERY & AGGREGATION
proc sql;
create table language_summary as
select Region,
count(Language_Name) as Total_Languages,
mean(Speakers) as Avg_Speakers
from languages_dates
group by Region;
quit;
proc print data=language_summary;
run;
OUTPUT:
| Obs | Region | Total_Languages | Avg_Speakers |
|---|---|---|---|
| 1 | Asia | 5 | 427.00 |
| 2 | Europe | 7 | 228.57 |
| 3 | Global | 1 | 1500.00 |
| 4 | MiddleEast | 1 | 310.00 |
4.PROC MEANS – DESCRIPTIVE STATISTICS
proc means data=languages_dates mean min max;
var Speakers Countries_Count Difficulty_Level;
run;
OUTPUT:
The MEANS Procedure
| Variable | Mean | Minimum | Maximum |
|---|---|---|---|
Speakers Countries_Count Difficulty_Level | 396.0714286 12.3571429 3.2142857 | 65.0000000 1.0000000 2.0000000 | 1500.00 60.0000000 5.0000000 |
5.PROC RANK – LANGUAGE POPULARITY RANKING
proc rank data=languages_dates out=language_rank descending;
var Speakers;
ranks Popularity_Rank;
run;
proc print data=language_rank;
run;
OUTPUT:
| Obs | Language_Name | Region | Introduced_Date | Review_Year | Speakers | Difficulty_Level | Countries_Count | Introduced_Year | Reference_Year | Years_Since_Intro | Popularity_Rank |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | English | Global | 01JAN1600 | 1605 | 1500 | 2 | 60 | 1600 | 2026 | 426 | 1.0 |
| 2 | Mandarin | Asia | 01JAN1200 | 1205 | 1100 | 5 | 3 | 1200 | 2026 | 826 | 2.0 |
| 3 | Hindi | Asia | 01JAN1500 | 1505 | 600 | 3 | 4 | 1500 | 2026 | 526 | 3.0 |
| 4 | Spanish | Europe | 01JAN1400 | 1405 | 550 | 2 | 21 | 1400 | 2026 | 626 | 4.0 |
| 5 | French | Europe | 01JAN1300 | 1305 | 300 | 3 | 29 | 1300 | 2026 | 726 | 6.0 |
| 6 | Arabic | MiddleEast | 01JAN700 | 705 | 310 | 4 | 25 | 700 | 2026 | 1326 | 5.0 |
| 7 | Russian | Europe | 01JAN900 | 905 | 260 | 4 | 4 | 900 | 2026 | 1126 | 7.5 |
| 8 | Portuguese | Europe | 01JAN1500 | 1505 | 260 | 2 | 10 | 1500 | 2026 | 526 | 7.5 |
| 9 | Bengali | Asia | 01JAN1200 | 1205 | 230 | 3 | 2 | 1200 | 2026 | 826 | 9.0 |
| 10 | Japanese | Asia | 01JAN800 | 805 | 125 | 5 | 1 | 800 | 2026 | 1226 | 10.0 |
| 11 | German | Europe | 01JAN1100 | 1105 | 90 | 3 | 6 | 1100 | 2026 | 926 | 11.0 |
| 12 | Korean | Asia | 01JAN900 | 905 | 80 | 4 | 2 | 900 | 2026 | 1126 | 12.0 |
| 13 | Italian | Europe | 01JAN1400 | 1405 | 65 | 2 | 4 | 1400 | 2026 | 626 | 14.0 |
| 14 | Turkish | Europe | 01JAN1100 | 1105 | 75 | 3 | 2 | 1100 | 2026 | 926 | 13.0 |
6.MACRO – AUTOMATED DIFFICULTY CLASSIFICATION
%macro difficulty_class;
data language_class;
set language_rank;
length Difficulty_Group $12;
if Difficulty_Level <=2 then Difficulty_Group='Easy';
else if Difficulty_Level=3 then Difficulty_Group='Medium';
else Difficulty_Group='Hard';
run;
proc print data=language_class;
run;
%mend;
%difficulty_class;
OUTPUT:
| Obs | Language_Name | Region | Introduced_Date | Review_Year | Speakers | Difficulty_Level | Countries_Count | Introduced_Year | Reference_Year | Years_Since_Intro | Popularity_Rank | Difficulty_Group |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | English | Global | 01JAN1600 | 1605 | 1500 | 2 | 60 | 1600 | 2026 | 426 | 1.0 | Easy |
| 2 | Mandarin | Asia | 01JAN1200 | 1205 | 1100 | 5 | 3 | 1200 | 2026 | 826 | 2.0 | Hard |
| 3 | Hindi | Asia | 01JAN1500 | 1505 | 600 | 3 | 4 | 1500 | 2026 | 526 | 3.0 | Medium |
| 4 | Spanish | Europe | 01JAN1400 | 1405 | 550 | 2 | 21 | 1400 | 2026 | 626 | 4.0 | Easy |
| 5 | French | Europe | 01JAN1300 | 1305 | 300 | 3 | 29 | 1300 | 2026 | 726 | 6.0 | Medium |
| 6 | Arabic | MiddleEast | 01JAN700 | 705 | 310 | 4 | 25 | 700 | 2026 | 1326 | 5.0 | Hard |
| 7 | Russian | Europe | 01JAN900 | 905 | 260 | 4 | 4 | 900 | 2026 | 1126 | 7.5 | Hard |
| 8 | Portuguese | Europe | 01JAN1500 | 1505 | 260 | 2 | 10 | 1500 | 2026 | 526 | 7.5 | Easy |
| 9 | Bengali | Asia | 01JAN1200 | 1205 | 230 | 3 | 2 | 1200 | 2026 | 826 | 9.0 | Medium |
| 10 | Japanese | Asia | 01JAN800 | 805 | 125 | 5 | 1 | 800 | 2026 | 1226 | 10.0 | Hard |
| 11 | German | Europe | 01JAN1100 | 1105 | 90 | 3 | 6 | 1100 | 2026 | 926 | 11.0 | Medium |
| 12 | Korean | Asia | 01JAN900 | 905 | 80 | 4 | 2 | 900 | 2026 | 1126 | 12.0 | Hard |
| 13 | Italian | Europe | 01JAN1400 | 1405 | 65 | 2 | 4 | 1400 | 2026 | 626 | 14.0 | Easy |
| 14 | Turkish | Europe | 01JAN1100 | 1105 | 75 | 3 | 2 | 1100 | 2026 | 926 | 13.0 | Medium |
7.PROC UNIVARIATE – DISTRIBUTION ANALYSIS
proc univariate data=language_class;
var Speakers;
histogram Speakers;
run;
OUTPUT:
The UNIVARIATE Procedure
Variable: Speakers
| Moments | |||
|---|---|---|---|
| N | 14 | Sum Weights | 14 |
| Mean | 396.071429 | Sum Observations | 5545 |
| Std Deviation | 424.305671 | Variance | 180035.302 |
| Skewness | 1.81572518 | Kurtosis | 2.88471787 |
| Uncorrected SS | 4536675 | Corrected SS | 2340458.93 |
| Coeff Variation | 107.128573 | Std Error Mean | 113.400461 |
| Basic Statistical Measures | |||
|---|---|---|---|
| Location | Variability | ||
| Mean | 396.0714 | Std Deviation | 424.30567 |
| Median | 260.0000 | Variance | 180035 |
| Mode | 260.0000 | Range | 1435 |
| Interquartile Range | 460.00000 | ||
| Tests for Location: Mu0=0 | ||||
|---|---|---|---|---|
| Test | Statistic | p Value | ||
| Student's t | t | 3.492679 | Pr > |t| | 0.0040 |
| Sign | M | 7 | Pr >= |M| | 0.0001 |
| Signed Rank | S | 52.5 | Pr >= |S| | 0.0001 |
| Quantiles (Definition 5) | |
|---|---|
| Level | Quantile |
| 100% Max | 1500 |
| 99% | 1500 |
| 95% | 1500 |
| 90% | 1100 |
| 75% Q3 | 550 |
| 50% Median | 260 |
| 25% Q1 | 90 |
| 10% | 75 |
| 5% | 65 |
| 1% | 65 |
| 0% Min | 65 |
| Extreme Observations | |||
|---|---|---|---|
| Lowest | Highest | ||
| Value | Obs | Value | Obs |
| 65 | 13 | 310 | 6 |
| 75 | 14 | 550 | 4 |
| 80 | 12 | 600 | 3 |
| 90 | 11 | 1100 | 2 |
| 125 | 10 | 1500 | 1 |
The UNIVARIATE Procedure
data new_languages;
length Language_Name $15 Region $15 Introduced_Date $9;
format Introduced_Year 4.;
input Language_Name $ Speakers Region $ Difficulty_Level Countries_Count
Introduced_Date $;
/* Extract year safely */
Introduced_Year = input(substr(Introduced_Date, 6, 4), 4.);
Review_Year = Introduced_Year + 5;
datalines;
Swahili 80 Africa 3 5 01JAN1500
Thai 70 Asia 4 1 01JAN1300
;
run;
proc print data=new_languages;
run;
OUTPUT:
| Obs | Language_Name | Region | Introduced_Date | Introduced_Year | Speakers | Difficulty_Level | Countries_Count | Review_Year |
|---|---|---|---|---|---|---|---|---|
| 1 | Swahili | Africa | 01JAN1500 | 1500 | 80 | 3 | 5 | 1505 |
| 2 | Thai | Asia | 01JAN1300 | 1300 | 70 | 4 | 1 | 1305 |
proc append base=languages_master
data=new_languages;
run;
proc print data=new_languages;
run;
OUTPUT:
| Obs | Language_Name | Region | Introduced_Date | Introduced_Year | Speakers | Difficulty_Level | Countries_Count | Review_Year |
|---|---|---|---|---|---|---|---|---|
| 1 | Swahili | Africa | 01JAN1500 | 1500 | 80 | 3 | 5 | 1505 |
| 2 | Thai | Asia | 01JAN1300 | 1300 | 70 | 4 | 1 | 1305 |
9.PROC TRANSPOSE – DATA RESTRUCTURING
proc transpose data=languages_master out=transposed_languages;
by Region NotSorted;
var Speakers Countries_Count;
run;
proc print data=transposed_languages;
run;
OUTPUT:
| Obs | Region | _NAME_ | COL1 | COL2 |
|---|---|---|---|---|
| 1 | Global | Speakers | 1500 | . |
| 2 | Global | Countries_Count | 60 | . |
| 3 | Asia | Speakers | 1100 | 600 |
| 4 | Asia | Countries_Count | 3 | 4 |
| 5 | Europe | Speakers | 550 | 300 |
| 6 | Europe | Countries_Count | 21 | 29 |
| 7 | MiddleEast | Speakers | 310 | . |
| 8 | MiddleEast | Countries_Count | 25 | . |
| 9 | Europe | Speakers | 260 | 260 |
| 10 | Europe | Countries_Count | 4 | 10 |
| 11 | Asia | Speakers | 230 | 125 |
| 12 | Asia | Countries_Count | 2 | 1 |
| 13 | Europe | Speakers | 90 | . |
| 14 | Europe | Countries_Count | 6 | . |
| 15 | Asia | Speakers | 80 | . |
| 16 | Asia | Countries_Count | 2 | . |
| 17 | Europe | Speakers | 65 | 75 |
| 18 | Europe | Countries_Count | 4 | 2 |
| 19 | Africa | Speakers | 80 | . |
| 20 | Africa | Countries_Count | 5 | . |
| 21 | Asia | Speakers | 70 | . |
| 22 | Asia | Countries_Count | 1 | . |
| 23 | Africa | Speakers | 80 | . |
| 24 | Africa | Countries_Count | 5 | . |
| 25 | Asia | Speakers | 70 | . |
| 26 | Asia | Countries_Count | 1 | . |
| 27 | Africa | Speakers | 80 | . |
| 28 | Africa | Countries_Count | 5 | . |
| 29 | Asia | Speakers | 70 | . |
| 30 | Asia | Countries_Count | 1 | . |
10.PROC MERGE – COMBINING DATASETS
proc sort data=languages_master; by Language_Name; run;
proc print data=languages_master;
run;
OUTPUT:
| Obs | Language_Name | Region | Introduced_Date | Review_Year | Speakers | Difficulty_Level | Countries_Count | Introduced_Year |
|---|---|---|---|---|---|---|---|---|
| 1 | Arabic | MiddleEast | 01JAN700 | 705 | 310 | 4 | 25 | 700 |
| 2 | Bengali | Asia | 01JAN1200 | 1205 | 230 | 3 | 2 | 1200 |
| 3 | English | Global | 01JAN1600 | 1605 | 1500 | 2 | 60 | 1600 |
| 4 | French | Europe | 01JAN1300 | 1305 | 300 | 3 | 29 | 1300 |
| 5 | German | Europe | 01JAN1100 | 1105 | 90 | 3 | 6 | 1100 |
| 6 | Hindi | Asia | 01JAN1500 | 1505 | 600 | 3 | 4 | 1500 |
| 7 | Italian | Europe | 01JAN1400 | 1405 | 65 | 2 | 4 | 1400 |
| 8 | Japanese | Asia | 01JAN800 | 805 | 125 | 5 | 1 | 800 |
| 9 | Korean | Asia | 01JAN900 | 905 | 80 | 4 | 2 | 900 |
| 10 | Mandarin | Asia | 01JAN1200 | 1205 | 1100 | 5 | 3 | 1200 |
| 11 | Portuguese | Europe | 01JAN1500 | 1505 | 260 | 2 | 10 | 1500 |
| 12 | Russian | Europe | 01JAN900 | 905 | 260 | 4 | 4 | 900 |
| 13 | Spanish | Europe | 01JAN1400 | 1405 | 550 | 2 | 21 | 1400 |
| 14 | Swahili | Africa | 01JAN1500 | . | 80 | 3 | 5 | 1500 |
| 15 | Swahili | Africa | 01JAN1500 | . | 80 | 3 | 5 | 1500 |
| 16 | Swahili | Africa | 01JAN1500 | 1505 | 80 | 3 | 5 | 1500 |
| 17 | Thai | Asia | 01JAN1300 | . | 70 | 4 | 1 | 1300 |
| 18 | Thai | Asia | 01JAN1300 | . | 70 | 4 | 1 | 1300 |
| 19 | Thai | Asia | 01JAN1300 | 1305 | 70 | 4 | 1 | 1300 |
| 20 | Turkish | Europe | 01JAN1100 | 1105 | 75 | 3 | 2 | 1100 |
proc sort data=language_rank; by Language_Name; run;
proc print data=language_rank;
run;
OUTPUT:
| Obs | Language_Name | Region | Introduced_Date | Review_Year | Speakers | Difficulty_Level | Countries_Count | Introduced_Year | Reference_Year | Years_Since_Intro | Popularity_Rank |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Arabic | MiddleEast | 01JAN700 | 705 | 310 | 4 | 25 | 700 | 2026 | 1326 | 5.0 |
| 2 | Bengali | Asia | 01JAN1200 | 1205 | 230 | 3 | 2 | 1200 | 2026 | 826 | 9.0 |
| 3 | English | Global | 01JAN1600 | 1605 | 1500 | 2 | 60 | 1600 | 2026 | 426 | 1.0 |
| 4 | French | Europe | 01JAN1300 | 1305 | 300 | 3 | 29 | 1300 | 2026 | 726 | 6.0 |
| 5 | German | Europe | 01JAN1100 | 1105 | 90 | 3 | 6 | 1100 | 2026 | 926 | 11.0 |
| 6 | Hindi | Asia | 01JAN1500 | 1505 | 600 | 3 | 4 | 1500 | 2026 | 526 | 3.0 |
| 7 | Italian | Europe | 01JAN1400 | 1405 | 65 | 2 | 4 | 1400 | 2026 | 626 | 14.0 |
| 8 | Japanese | Asia | 01JAN800 | 805 | 125 | 5 | 1 | 800 | 2026 | 1226 | 10.0 |
| 9 | Korean | Asia | 01JAN900 | 905 | 80 | 4 | 2 | 900 | 2026 | 1126 | 12.0 |
| 10 | Mandarin | Asia | 01JAN1200 | 1205 | 1100 | 5 | 3 | 1200 | 2026 | 826 | 2.0 |
| 11 | Portuguese | Europe | 01JAN1500 | 1505 | 260 | 2 | 10 | 1500 | 2026 | 526 | 7.5 |
| 12 | Russian | Europe | 01JAN900 | 905 | 260 | 4 | 4 | 900 | 2026 | 1126 | 7.5 |
| 13 | Spanish | Europe | 01JAN1400 | 1405 | 550 | 2 | 21 | 1400 | 2026 | 626 | 4.0 |
| 14 | Turkish | Europe | 01JAN1100 | 1105 | 75 | 3 | 2 | 1100 | 2026 | 926 | 13.0 |
data language_final;
merge languages_master(in=a)
language_rank(in=b);
by Language_Name;
if a;
run;
proc print data=language_final;
run;
OUTPUT:
| Obs | Language_Name | Region | Introduced_Date | Review_Year | Speakers | Difficulty_Level | Countries_Count | Introduced_Year | Reference_Year | Years_Since_Intro | Popularity_Rank |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Arabic | MiddleEast | 01JAN700 | 705 | 310 | 4 | 25 | 700 | 2026 | 1326 | 5.0 |
| 2 | Bengali | Asia | 01JAN1200 | 1205 | 230 | 3 | 2 | 1200 | 2026 | 826 | 9.0 |
| 3 | English | Global | 01JAN1600 | 1605 | 1500 | 2 | 60 | 1600 | 2026 | 426 | 1.0 |
| 4 | French | Europe | 01JAN1300 | 1305 | 300 | 3 | 29 | 1300 | 2026 | 726 | 6.0 |
| 5 | German | Europe | 01JAN1100 | 1105 | 90 | 3 | 6 | 1100 | 2026 | 926 | 11.0 |
| 6 | Hindi | Asia | 01JAN1500 | 1505 | 600 | 3 | 4 | 1500 | 2026 | 526 | 3.0 |
| 7 | Italian | Europe | 01JAN1400 | 1405 | 65 | 2 | 4 | 1400 | 2026 | 626 | 14.0 |
| 8 | Japanese | Asia | 01JAN800 | 805 | 125 | 5 | 1 | 800 | 2026 | 1226 | 10.0 |
| 9 | Korean | Asia | 01JAN900 | 905 | 80 | 4 | 2 | 900 | 2026 | 1126 | 12.0 |
| 10 | Mandarin | Asia | 01JAN1200 | 1205 | 1100 | 5 | 3 | 1200 | 2026 | 826 | 2.0 |
| 11 | Portuguese | Europe | 01JAN1500 | 1505 | 260 | 2 | 10 | 1500 | 2026 | 526 | 7.5 |
| 12 | Russian | Europe | 01JAN900 | 905 | 260 | 4 | 4 | 900 | 2026 | 1126 | 7.5 |
| 13 | Spanish | Europe | 01JAN1400 | 1405 | 550 | 2 | 21 | 1400 | 2026 | 626 | 4.0 |
| 14 | Swahili | Africa | 01JAN1500 | . | 80 | 3 | 5 | 1500 | . | . | . |
| 15 | Swahili | Africa | 01JAN1500 | . | 80 | 3 | 5 | 1500 | . | . | . |
| 16 | Swahili | Africa | 01JAN1500 | 1505 | 80 | 3 | 5 | 1500 | . | . | . |
| 17 | Thai | Asia | 01JAN1300 | . | 70 | 4 | 1 | 1300 | . | . | . |
| 18 | Thai | Asia | 01JAN1300 | . | 70 | 4 | 1 | 1300 | . | . | . |
| 19 | Thai | Asia | 01JAN1300 | 1305 | 70 | 4 | 1 | 1300 | . | . | . |
| 20 | Turkish | Europe | 01JAN1100 | 1105 | 75 | 3 | 2 | 1100 | 2026 | 926 | 13.0 |