Is there any difference between the predict() and forecast() functions in R? 
If yes, in which specific cases should they be used?
Is there any difference between the predict() and forecast() functions in R? 
If yes, in which specific cases should they be used?
 
    
     
    
    predict -- for many kinds of R objects (models). Part of the base library.forecast -- for time series. Part of the forecast package. (See example).#load training data
trnData = read.csv("http://www.bodowinter.com/tutorial/politeness_data.csv")
model <- lm(frequency ~ attitude + scenario, trnData)
#create test data
tstData <- t(cbind(c("H1", "H", 2, "pol", 185),
                   c("M1", "M", 1, "pol", 115),
                   c("M1", "M", 1, "inf", 118),
                   c("F1", "F", 3, "inf", 210)))
tstData <- data.frame(tstData,stringsAsFactors = F)
colnames(tstData) <- colnames(trnData)
tstData[,3]=as.numeric(tstData[,3])
tstData[,5]=as.numeric(tstData[,5])
cbind(Obs=tstData$frequency,pred=predict(model,newdata=tstData))
#forecast
x <- read.table(text='day       sum
                    2015-03-04   44           
                    2015-03-05   46           
                    2015-03-06   48           
                    2015-03-07   48           
                    2015-03-08   58           
                    2015-03-09   58           
                    2015-03-10   66           
                    2015-03-11   68           
                    2015-03-12   85           
                    2015-03-13   94           
                    2015-03-14   98           
                    2015-03-15  102           
                    2015-03-16  102           
                    2015-03-17  104           
                    2015-03-18  114', header=TRUE, stringsAsFactors=FALSE)
library(xts)
dates=as.Date(x$day,"%Y-%m-%d")
xs=xts(x$sum,dates)
library("forecast")
fit <- ets(xs)
plot(forecast(fit))
forecast(fit, h=4)