Research and development expenditure (% of GDP)

Source: worldbank.org, 01.09.2025

Year: 2022

Flag Country Value Value change, % Rank
Argentina Argentina 0.549 +5.23% 44
Armenia Armenia 0.21 +1.94% 60
Austria Austria 3.2 -1.93% 7
Azerbaijan Azerbaijan 0.151 -27.4% 65
Belgium Belgium 3.41 +0.385% 5
Bulgaria Bulgaria 0.754 -2.4% 38
Bosnia & Herzegovina Bosnia & Herzegovina 0.187 -1.53% 61
Belarus Belarus 0.475 +3.25% 45
Canada Canada 1.71 -8.19% 18
China China 2.56 +5.04% 12
Congo - Brazzaville Congo - Brazzaville 0.383 50
Costa Rica Costa Rica 0.338 +23.4% 53
Cuba Cuba 0.36 +11.6% 52
Cyprus Cyprus 0.745 -6.88% 39
Czechia Czechia 1.96 -1.59% 16
Germany Germany 3.13 +0.113% 8
Denmark Denmark 2.89 +4.67% 10
Egypt Egypt 1.02 +11.8% 31
Spain Spain 1.44 +1.71% 23
Estonia Estonia 1.78 +0.814% 17
Finland Finland 2.96 -0.797% 9
France France 2.23 +0.678% 14
Georgia Georgia 0.235 -5.65% 58
Greece Greece 1.49 +1.93% 21
Hong Kong SAR China Hong Kong SAR China 1.07 +10.6% 29
Croatia Croatia 1.4 +14% 24
Hungary Hungary 1.39 -15.2% 25
Ireland Ireland 0.963 -13.3% 35
Iceland Iceland 2.6 -6.42% 11
Israel Israel 6.02 +4.09% 1
Italy Italy 1.39 -2.55% 26
Japan Japan 3.41 +3.92% 6
Kazakhstan Kazakhstan 0.117 -10% 69
Kenya Kenya 0.41 -40.7% 49
Kyrgyzstan Kyrgyzstan 0.0692 -2.53% 74
South Korea South Korea 5.21 +6.13% 2
Kuwait Kuwait 0.0804 -56.3% 72
Sri Lanka Sri Lanka 0.105 -9.56% 70
Lithuania Lithuania 1.05 -4.63% 30
Luxembourg Luxembourg 0.977 -6.21% 33
Latvia Latvia 0.764 +2.36% 37
Macao SAR China Macao SAR China 0.437 +17.1% 48
Moldova Moldova 0.23 -0.739% 59
Mexico Mexico 0.258 -5.83% 57
North Macedonia North Macedonia 0.38 +1.94% 51
Malta Malta 0.604 -7.32% 43
Myanmar (Burma) Myanmar (Burma) 0.0352 -71.6% 76
Mongolia Mongolia 0.0837 -16.4% 71
Mauritius Mauritius 0.308 -16.2% 55
Namibia Namibia 0.646 +84.8% 40
Netherlands Netherlands 2.26 -0.592% 13
Norway Norway 1.56 -17.5% 20
Oman Oman 0.275 -5.08% 56
Panama Panama 0.182 +3.14% 62
Peru Peru 0.162 +17.6% 63
Poland Poland 1.45 +1.54% 22
Portugal Portugal 1.7 +1.87% 19
Paraguay Paraguay 0.119 -17% 68
Romania Romania 0.459 -2.86% 47
Russia Russia 0.925 -3.47% 36
Saudi Arabia Saudi Arabia 0.463 +4.63% 46
El Salvador El Salvador 0.143 -12.1% 66
Serbia Serbia 0.966 -2.78% 34
Slovakia Slovakia 0.979 +6.91% 32
Slovenia Slovenia 2.1 -1.54% 15
Sweden Sweden 3.41 +0.178% 4
Syria Syria 0.0731 +276% 73
Thailand Thailand 1.16 -4.06% 28
Turkmenistan Turkmenistan 0.14 +40% 67
Trinidad & Tobago Trinidad & Tobago 0.0478 -11.1% 75
Turkey Turkey 1.32 -5.61% 27
Ukraine Ukraine 0.327 -15.1% 54
Uruguay Uruguay 0.626 +1.86% 41
United States United States 3.59 +2.96% 3
Uzbekistan Uzbekistan 0.159 +20.6% 64
South Africa South Africa 0.617 +0.367% 42

Research and development (R&D) expenditure as a percentage of gross domestic product (GDP) is a vital economic indicator that reflects the commitment of a country to innovate and develop new technologies, products, and services. This metric serves as a barometer for understanding how much a nation prioritizes R&D relative to its economic output. Not only does it offer insights into the current state of a nation’s innovation economy, but it also indicates future potential for growth and technological advancement.

The importance of R&D expenditure in relation to GDP cannot be overstated. A robust R&D investment typically correlates with greater competitiveness in the global market, improved productivity across industries, and higher overall economic growth. Innovation drives productivity increases, which in turn leads to better jobs and higher living standards. Countries that invest adequately in R&D are often at the forefront of technological advancements, allowing them not only to catch up but also to lead in emerging industries such as renewable energy, biotechnology, and information technology.

This indicator is tightly linked to several other economic and social metrics. For example, countries with higher levels of R&D expenditure tend to exhibit better educational outcomes, as a skilled workforce is essential to conduct high-level research. The correlation can also be seen in the rates of patent filings, business start-ups, and spin-offs from research institutions. Furthermore, R&D spending is often tied to other investments in human capital and infrastructure, creating a holistic environment conducive to innovation.

However, several factors can affect R&D expenditure as a percentage of GDP. Economic conditions play a crucial role; during periods of economic downturn or uncertainty, governments and companies may cut back on R&D investments, opting instead to safeguard capital. Furthermore, cultural attitudes towards innovation and education can vary significantly between countries, impacting how resources are allocated towards research initiatives. If a society values technological advancement and scientific inquiry, it is likely to invest more heavily in R&D.

Among the strategies to enhance R&D expenditure, governments can introduce policies such as tax incentives for businesses that invest in research, grants for academic institutions, and fostering public-private partnerships. Such initiatives can stimulate both corporate and public sector investment in R&D. Additionally, embracing a regulatory environment that encourages innovation, such as easing restrictions on startups and providing funding for early-stage technologies, can effectively bolster R&D commitment.

Despite its importance, R&D expenditure as a percentage of GDP also has some inherent flaws as an indicator. For example, it may not capture the complex nature of innovation in some economies, particularly where informal sectors or non-traditional research pathways are prevalent. Additionally, the measure fails to account for the effectiveness and efficiency of the expenditure, which can vary greatly among different countries. Simply spending more does not guarantee better outcomes if the investment is not managed correctly.

Looking at the latest data from 2022, the median value of R&D expenditure as a percentage of GDP stands at 0.28%. This figure starkly highlights a global trend toward low investment in R&D by many countries. Countries such as Portugal, Canada, Hong Kong SAR China, Egypt, and Serbia stand out as leaders in R&D investment relative to their GDP, with percentages of 1.73%, 1.55%, 1.07%, 1.02%, and 0.97%, respectively. These nations have shown a commitment to fostering innovation, which, if sustained, can lay the groundwork for economic resilience and growth.

On the other end of the spectrum, countries like Myanmar (Burma), Kyrgyzstan, Kuwait, Mongolia, and Kazakhstan exhibit minimal R&D expenditure, with figures ranging from 0.04% to 0.12%. This low level of investment can hinder these nations from breaking into higher stages of economic development and can stall social progress as technological advantages are likely to be out of reach.

Historically, world values illustrate a concerning decline in global R&D expenditure relative to GDP, with values dropping from a peak of 2.62% in 2021, 2.49% in 2020 to the 1.97% recorded in 1996. This downward trajectory reflects a shift in priorities for many nations or perhaps indicates a lag in adapting to the global demands for innovation. Increasing pressure on budgets due to economic crises, climate change commitments, or geopolitical tensions may further exacerbate the decline in R&D spending among countries.

In conclusion, R&D expenditure as a percentage of GDP is more than just a number; it is a critical indicator that reflects how seriously a nation takes innovation and technological advancement. Countries that recognize the importance of investing in research will likely reap substantial long-term benefits. A concerted effort is needed to reverse declining trends and ensure that all economies — particularly those at the bottom end of the spectrum — can elevate their investment in R&D to foster sustainable growth and competitive advantage in an increasingly complex global marketplace.

                    
# 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 = 'GB.XPD.RSDV.GD.ZS'

# 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 <- 'GB.XPD.RSDV.GD.ZS'

# 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))