Data can be obtained from https://www.ecdc.europa.eu/en/publications-data/download-todays-data-geographic-distribution-covid-19-cases-worldwide. Read the data using function read.csv.

Here is how a basic forecast could be done:

# packages
library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
#########################
### 1. China ############
#########################

china_data = covid19_data[covid19_data$countriesAndTerritories == "China", ]
china_data = china_data[dim(china_data)[1]:1,]
china_data$total_cases = cumsum(china_data$cases)

# fit arima model
china_total_cases_ts = ts(data = china_data$total_cases)
china_total_cases_model = auto.arima(china_total_cases_ts)
plot(forecast(china_total_cases_model), main="Total Cases Forecast (China)",
     xlab="Days Passed", ylab="Total Cases")

#########################
### 2. Canada ###########
#########################

# analyze canada
canada_data = covid19_data[covid19_data$countriesAndTerritories == "Canada",]
canada_data = canada_data[dim(canada_data)[1]:1,]
canada_data$total_cases = cumsum(canada_data$cases)

# fit arima model
canada_total_cases_ts = ts(data = canada_data$total_cases)
canada_total_cases_model = auto.arima(canada_total_cases_ts)
plot(forecast(canada_total_cases_model), main="Total Cases Forecast (Canada)",
    xlab="Days Passed", ylab="Total Cases")

#########################
### 3. World ############
#########################

world_data = aggregate(cases ~ dateRep, FUN = sum, data=covid19_data)
world_data$dateRep = as.Date(world_data$dateRep, format = "%d/%m/%Y")
world_data = world_data[order(world_data$dateRep),]
world_data$total_cases = cumsum(world_data$cases)

# fit arima.model
world_total_cases_ts = ts(data = world_data$total_cases)
world_total_cases_model = auto.arima(world_total_cases_ts)
plot(forecast(world_total_cases_model), main="Total Cases Forecast (World)",
     xlab="Days Passed", ylab="Total Cases")

More complicated models can be done.