library(openxlsx) dat<-read.xlsx("http://kanggc.iptime.org/book/data/macro-islm-e.xlsx") A<-as.matrix(dat) H<-matrix(c(0,0,200,200,100,100,0,1000), nrow=8) H X<-t(solve(A)%*%H) XV<-as.vector(X) names(XV)<-c("Y=","C=","I=","G=","T=","r=","Md=","Ms=") XV GH<-matrix(c(0,0,200,200,150,100,0,1000), nrow=8) GX<-t(solve(A)%*%GH) GXV<-as.vector(GX) names(GXV)<-c("Y=","C=","I=","G=","T=","r=","Md=","Ms=") GXV GM<-(GXV[1]-X[1,1])/(GXV[4]-H[5,1]) names(GM)<-c("dY/dG=") GM MH<-matrix(c(0,0,200,200,100,100,0,1200), nrow=8) MX<-t(solve(A)%*%MH) MXV<-as.vector(MX) names(MXV)<-c("Y=","C=","I=","G=","T=","r=","Md=","Ms=") MXV MM<-(MXV[1]-X[1,1])/(MXV[8]-H[8,1]) names(MM)<-c("dY/dM=") MM