#Matriz Insumo-Produto
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
#Dados
X=rbind(c(90,100),
        c(80,50))

D=rbind(c(200),c(300))

VBP<-data.frame(cbind(X,D)) 
colnames(VBP)<-c("Xa","Xb","D")
VBP<-transmute(VBP, VBP=Xa+Xb+D)


#Coeficiente tecnicos de produção
A=round(cbind(X[,1]/VBP[1,1], X[,2]/VBP[2,1]),4)


#matriz inversa de leontief
I=diag(rep(1,nrow(D)))
L=solve(I-A) 


#VBP inicial
Y0=L%*%D; Y0
##          [,1]
## [1,] 390.0412
## [2,] 430.0073
#Choque Econômico
choque=20
D1=rbind(c(200),c(300+choque))

Y1=L%*%D1

#Impacto Total
Y1-Y0
##           [,1]
## [1,]  7.360343
## [2,] 24.340394
#Impacto Direto
A[1,2]*choque #NO SETOR A
## [1] 4.652
A[2,2]*choque #NO SETOR B
## [1] 2.326
20/VBP[2,1]*choque #M DE A
## [1] 0.9302326