Researchers in R&D (per million people)

Source: worldbank.org, 01.09.2025

Year: 2021

Flag Country Value Value change, % Rank
United Arab Emirates United Arab Emirates 2,607 +0.98% 34
Argentina Argentina 1,288 +3.01% 50
Austria Austria 6,323 +8.47% 9
Azerbaijan Azerbaijan 1,743 +0.638% 43
Belgium Belgium 6,597 +21.7% 8
Bulgaria Bulgaria 2,347 -2.27% 37
Bosnia & Herzegovina Bosnia & Herzegovina 446 -0.0949% 67
Belarus Belarus 1,439 -2.32% 49
Bolivia Bolivia 63.1 +7.19% 77
Canada Canada 5,412 +4.97% 15
Switzerland Switzerland 6,021 +8.26% 10
Chile Chile 639 +24% 61
China China 1,686 +5.35% 47
Costa Rica Costa Rica 407 +9.3% 68
Cuba Cuba 2,100 -1.05% 42
Cyprus Cyprus 1,743 +0.185% 44
Czechia Czechia 4,560 +8.91% 23
Germany Germany 5,521 +2.42% 13
Denmark Denmark 7,708 +0.744% 5
Dominican Republic Dominican Republic 23.4 -4.76% 80
Egypt Egypt 808 +2.25% 55
Spain Spain 3,230 +5.83% 30
Estonia Estonia 4,036 +5.21% 27
Finland Finland 7,870 +4.27% 4
France France 5,058 +3.58% 19
Georgia Georgia 1,703 -5.35% 45
Greece Greece 4,244 +5.89% 25
Guatemala Guatemala 14.5 -16% 82
Hong Kong SAR China Hong Kong SAR China 4,592 +5.42% 22
Croatia Croatia 2,414 +5.18% 35
Hungary Hungary 4,452 +3.32% 24
Ireland Ireland 5,213 +0.333% 17
Iran Iran 2,240 +41% 38
Iraq Iraq 164 +20.3% 73
Iceland Iceland 6,941 +22.9% 7
Italy Italy 2,659 +1.69% 33
Japan Japan 5,590 +2.56% 12
Kazakhstan Kazakhstan 610 -8.8% 62
South Korea South Korea 9,071 +5.24% 1
Lithuania Lithuania 3,947 +8.32% 28
Luxembourg Luxembourg 4,939 +5.34% 20
Latvia Latvia 2,395 +12.2% 36
Macao SAR China Macao SAR China 4,093 +6.97% 26
Moldova Moldova 781 +0.847% 57
Mexico Mexico 273 -3% 72
North Macedonia North Macedonia 844 -2.88% 54
Mali Mali 28.7 -48.1% 79
Malta Malta 2,158 +9.8% 41
Myanmar (Burma) Myanmar (Burma) 19.1 -41.7% 81
Mongolia Mongolia 681 +105% 60
Mauritius Mauritius 564 +1.1% 63
Netherlands Netherlands 6,004 +3.53% 11
Norway Norway 7,229 +6.84% 6
New Zealand New Zealand 5,095 -10.1% 18
Oman Oman 332 -11.2% 70
Pakistan Pakistan 401 +10.8% 69
Panama Panama 135 -19.6% 75
Poland Poland 3,558 +9.14% 29
Portugal Portugal 5,431 +5.84% 14
Paraguay Paraguay 143 +1.09% 74
Qatar Qatar 948 +61.8% 52
Romania Romania 989 +4.92% 51
Russia Russia 2,662 -1.76% 32
Saudi Arabia Saudi Arabia 794 +55.1% 56
Singapore Singapore 7,917 +5.51% 3
El Salvador El Salvador 65.3 +9.27% 76
Serbia Serbia 2,207 +2.64% 40
Slovakia Slovakia 3,211 +1.38% 31
Slovenia Slovenia 5,235 +0.926% 16
Sweden Sweden 8,160 +5.22% 2
Togo Togo 43.7 -0.956% 78
Thailand Thailand 1,696 -16% 46
Trinidad & Tobago Trinidad & Tobago 539 -10.8% 64
Tunisia Tunisia 1,610 -2.08% 48
Turkey Turkey 2,210 +12.5% 39
Ukraine Ukraine 774 -8.53% 58
Uruguay Uruguay 846 +3.08% 53
United States United States 4,825 +8.09% 21
Uzbekistan Uzbekistan 524 +22.8% 65
Venezuela Venezuela 276 -4.57% 71
Vietnam Vietnam 768 +1.76% 59
South Africa South Africa 455 -1.13% 66

The indicator 'Researchers in R&D (per million people)' is a critical metric that reflects a nation's commitment to innovation, technology development, and scientific inquiry. It measures the number of researchers engaged in research and development activities relative to the population size, providing insight into a country's intellectual capital. In 2022, the global median value was recorded at 642.37 researchers per million people, representing an ongoing trend towards higher investment in R&D across various parts of the world.

The importance of this indicator cannot be overstated. High researcher density is often correlated with increased productivity, economic growth, and advancement in technology. Countries with a robust R&D workforce are typically better positioned to adapt to changing global markets, respond to societal challenges, and enhance their overall competitive advantage. It signals a nation’s focus on creating knowledge-based economies, which can lead to sustainable development. For instance, countries like Portugal lead the pack with a staggering 5742.97 researchers per million, showcasing their commitment to innovation and research investment.

In analyzing the top five areas globally, we see a clear leader in Portugal, followed by Hong Kong SAR China and Macao SAR China, with respective researcher densities of 4808.96 and 3544.53 per million people. Russia, an established player in the realm of scientific research, shows a concentration of 2697.89 researchers per million, while Serbia has a notable figure of 2349.68. These statistics underline a trend where nations that prioritize R&D tend to foster environments conducive to scientific productivity and advancement. The presence of such a high number of researchers within these territories indicates not only governmental investment but also a cultural acceptance of research and development as a vital component for societal progress.

On the contrary, the data paints a stark picture for countries with the lowest researcher densities. Togo, with only 44.4 researchers per million people, represents a nation struggling with limited resources, perhaps hampering its potential for growth and innovation. Other countries like the Republic of Congo and Syria, with 128.25 and 142.01 researchers per million respectively, face similar challenges. They likely contend with systemic barriers such as political instability, lack of funding for education and research, and limited access to technology. These factors create a vicious cycle of low investment in R&D, reducing the number of qualified researchers, which in turn stifles the country's potential for innovation and economic development.

This correlation highlights the need for a multi-faceted approach to enhance R&D in lagging nations. Various factors can affect the number of researchers in a region, including educational infrastructure, government policies, economic stability, and cultural attitudes towards science and technology. For example, countries that have invested heavily in their education systems and provide robust funding for universities and research institutions tend to see higher researcher densities. Moreover, supportive policies that incentivize research, such as favorable tax regimes for R&D activities and grants for scientific research, can significantly boost the number of engaged researchers.

Strategies to increase the number of researchers in a country involve a comprehensive approach. First, government commitment through funding is imperative. Increasing investment in education, research institutions, and grant opportunities can serve as a catalyst for cultivating a larger R&D workforce. Additionally, fostering partnerships between academic institutions and industries can help bridge the gap between theoretical research and practical application, leading to more job opportunities for researchers.

Moreover, creating an ecosystem that encourages innovation is essential. This may include establishing research parks, promoting STEM (Science, Technology, Engineering, and Mathematics) education at the primary and secondary levels, and facilitating international collaboration through grants, scholarships, and exchange programs. Countries like Portugal have shown how academic and industrial collaboration can lead to elevated R&D levels, which can serve as a model for others.

However, there are inherent flaws in the reliance on this indicator alone. It does not account for the quality or output of the research conducted. Countries with high researcher density may produce subpar research outcomes, while those with fewer researchers may yield groundbreaking discoveries. This nuance must not be overlooked when examining research capabilities globally. Furthermore, R&D definitions and categories can vary significantly across countries, complicating direct comparisons.

In conclusion, while the indicator 'Researchers in R&D (per million people)' provides essential insights into a nation's research capabilities and potential for innovation, it should ideally be analyzed alongside other metrics that consider the quality of research outcomes, sustainability, and impact on societal challenges. As countries globally pursue their paths toward becoming knowledge-based economies, an increasing emphasis on R&D and researcher engagement will be crucial for facing the complexities of modern-day challenges and securing a competitive edge in a rapidly evolving global landscape.

                    
# Install missing packages
import sys
import subprocess

def install(package):
subprocess.check_call([sys.executable, "-m", "pip", "install", package])

# Required packages
for package in ['wbdata', 'country_converter']:
try:
__import__(package)
except ImportError:
install(package)

# Import libraries
import wbdata
import country_converter as coco
from datetime import datetime

# Define World Bank indicator code
dataset_code = 'SP.POP.SCIE.RD.P6'

# Download data from World Bank API
data = wbdata.get_dataframe({dataset_code: 'value'},
date=(datetime(1960, 1, 1), datetime.today()),
parse_dates=True,
keep_levels=True).reset_index()

# Extract year
data['year'] = data['date'].dt.year

# Convert country names to ISO codes using country_converter
cc = coco.CountryConverter()
data['iso2c'] = cc.convert(names=data['country'], to='ISO2', not_found=None)
data['iso3c'] = cc.convert(names=data['country'], to='ISO3', not_found=None)

# Filter out rows where ISO codes could not be matched — likely not real countries
data = data[data['iso2c'].notna() & data['iso3c'].notna()]

# Sort for calculation
data = data.sort_values(['iso3c', 'year'])

# Calculate YoY absolute and percent change
data['value_change'] = data.groupby('iso3c')['value'].diff()
data['value_change_percent'] = data.groupby('iso3c')['value'].pct_change() * 100

# Calculate ranks (higher GDP per capita = better rank)
data['rank'] = data.groupby('year')['value'].rank(ascending=False, method='dense')

# Calculate rank change from previous year
data['rank_change'] = data.groupby('iso3c')['rank'].diff()

# Select desired columns
final_df = data[['country', 'iso2c', 'iso3c', 'year', 'value',
'value_change', 'value_change_percent', 'rank', 'rank_change']].copy()

# Optional: Add labels as metadata (could be useful for export or UI)
column_labels = {
'country': 'Country name',
'iso2c': 'ISO 2-letter country code',
'iso3c': 'ISO 3-letter country code',
'year': 'Year',
'value': 'GDP per capita (current US$)',
'value_change': 'Year-over-Year change in value',
'value_change_percent': 'Year-over-Year percent change in value',
'rank': 'Country rank by GDP per capita (higher = richer)',
'rank_change': 'Change in rank from previous year'
}

# Display first few rows
print(final_df.head(10))

# Optional: Save to CSV
#final_df.to_csv("gdp_per_capita_cleaned.csv", index=False)
                    
                
                    
# Check and install required packages
required_packages <- c("WDI", "countrycode", "dplyr")

for (pkg in required_packages) {
  if (!requireNamespace(pkg, quietly = TRUE)) {
    install.packages(pkg)
  }
}

# Load the necessary libraries
library(WDI)
library(dplyr)
library(countrycode)

# Define the dataset code (World Bank indicator code)
dataset_code <- 'SP.POP.SCIE.RD.P6'

# Download data using WDI package
dat <- WDI(indicator = dataset_code)

# Filter only countries using 'is_country' from countrycode
# This uses iso2c to identify whether the entry is a recognized country
dat <- dat %>%
  filter(countrycode(iso2c, origin = 'iso2c', destination = 'country.name', warn = FALSE) %in%
           countrycode::codelist$country.name.en)

# Ensure dataset is ordered by country and year
dat <- dat %>%
  arrange(iso3c, year)

# Rename the dataset_code column to "value" for easier manipulation
dat <- dat %>%
  rename(value = !!dataset_code)

# Calculate year-over-year (YoY) change and percentage change
dat <- dat %>%
  group_by(iso3c) %>%
  mutate(
    value_change = value - lag(value),                              # Absolute change from previous year
    value_change_percent = 100 * (value - lag(value)) / lag(value) # Percent change from previous year
  ) %>%
  ungroup()

# Calculate rank by year (higher value => higher rank)
dat <- dat %>%
  group_by(year) %>%
  mutate(rank = dense_rank(desc(value))) %>% # Rank countries by descending value
  ungroup()

# Calculate rank change (positive = moved up, negative = moved down)
dat <- dat %>%
  group_by(iso3c) %>%
  mutate(rank_change = rank - lag(rank)) %>% # Change in rank compared to previous year
  ungroup()

# Select and reorder final columns
final_data <- dat %>%
  select(
    country,
    iso2c,
    iso3c,
    year,
    value,
    value_change,
    value_change_percent,
    rank,
    rank_change
  )

# Add labels (variable descriptions)
attr(final_data$country, "label") <- "Country name"
attr(final_data$iso2c, "label") <- "ISO 2-letter country code"
attr(final_data$iso3c, "label") <- "ISO 3-letter country code"
attr(final_data$year, "label") <- "Year"
attr(final_data$value, "label") <- "GDP per capita (current US$)"
attr(final_data$value_change, "label") <- "Year-over-Year change in value"
attr(final_data$value_change_percent, "label") <- "Year-over-Year percent change in value"
attr(final_data$rank, "label") <- "Country rank by GDP per capita (higher = richer)"
attr(final_data$rank_change, "label") <- "Change in rank from previous year"

# Print the first few rows of the final dataset
print(head(final_data, 10))