UIBE在价值链指标体系中有一个基于3x4(3国4部门)的生产分解案例,附有代码,但是第四个脚本中有一部分代码运行出现错误,而且没看明白是什么意思,具体代码如下(红色部分即为出错的代码):
##***************************************************##
## Created by: Fei Wang Date: 05/08/2016 ##
## E-Mail:wangfei64@hotmail.com ##
## School of International Trade and Economics ##
## University of International Business and Economics, China ##
#####################################
## Part 0 = GVC participation index based on forward industrial linkage======
path <- getwd( )
pathdata <- paste( path, "/data", sep="" )
pathinc <- paste( path, "/inc", sep="" )
pathout <- paste( path, "/out", sep="" )
flnm <- paste( pathinc,"/regsecnam.RData",sep="" )
load( flnm )
GN <- length( rownam ); G <- length( regnam )
N <- GN/G
flnm = paste0( path,"/index1_PROD/SVAbyFDbyYear.RData" )
load( flnm )
#View( SVAbyFDbyYear[ ,,1] )
GVC_Pat_f <- array( 0,dim=c( GN,3,length( year ) ) )
for ( j in 1:length( year ) ){
z <- SVAbyFDbyYear[ ,4:6,j ]/SVAbyFDbyYear[,1,j]
GVC_Pat_f[ ,1,j ] <- z[ ,1 ]+z[ ,2 ]+z[ ,3 ]
GVC_Pat_f[ ,2,j ] <- z[ ,1 ]
GVC_Pat_f[ ,3,j ] <- z[ ,2 ]+z[ ,3 ]
}
colnam <- c( 'GVC_Pat_f','GVC_Pat_f_simple','GVC_Pat_f_complex')
dimnames( GVC_Pat_f ) <- list( rownam,colnam,year )
##== VAX_Fs, DVA_Fs,RCA_DVA_f
VAX_Fs <- SVAbyFDbyYear[ ,8, ]/SVAbyFDbyYear[ ,1, ]
DVA_Fs <- SVAbyFDbyYear[ ,9, ]/SVAbyFDbyYear[ ,1, ]
##== RCA_DVA_f ==============================
DVA_G <- array( 0,dim=c( (G*N),length( year ) ) )
for ( i in 1:length( year ) ){
#i=1
flnm <- paste0( pathinc,"/",year,"/T01_DVA_FIN.RData" )
load( flnm )
DVA_G[ ,i ] <- apply(T01_DVA_FIN,1,sum)
rm( T01_DVA_FIN); gc( )
flnm <- paste0( pathinc,"/",year,"/T02_DVA_INT.RData" )
load( flnm )
DVA_G[ ,i ] <- DVA_G[ ,i ] + apply(T02_DVA_INT,1,sum)
rm( T02_DVA_INT); gc( )
flnm <- paste0( pathinc,"/",year,"/T03_DVA_INTrex1.RData" )
load( flnm )
DVA_G[ ,i ] <- DVA_G[ ,i ] + apply(T03_DVA_INTrex1,1,sum)
rm( T03_DVA_INTrex1); gc( )
flnm <- paste0( pathinc,"/",year,"/T04_DVA_INTrex2.RData" )
load( flnm )
DVA_G[ ,i ] <- DVA_G[ ,i ] + apply(T04_DVA_INTrex2,1,sum)
rm( T04_DVA_INTrex2 );gc( )
flnm <- paste0( pathinc,"/",year,"/T05_DVA_INTrex3.RData" )
load( flnm )
DVA_G[ ,i ] <- DVA_G[ ,i ] + apply(T05_DVA_INTrex3,1,sum )
rm( T05_DVA_INTrex3 );gc( )
flnm <- paste0( pathinc,"/",year,"/T06_RDV_FIN1.RData" )
load( flnm )
DVA_G[ ,i ] <- DVA_G[ ,i ] + apply(T06_RDV_FIN1,1,sum )
rm( T06_RDV_FIN1 );gc( )
flnm <- paste0( pathinc,"/",year,"/T07_RDV_FIN2.RData" )
load( flnm )
DVA_G[ ,i ] <- DVA_G[ ,i ] + apply(T07_RDV_FIN2,1,sum )
rm( T07_RDV_FIN2 );gc( )
flnm <- paste0( pathinc,"/",year,"/T08_RDV_INT.RData" )
load( flnm )
DVA_G[ ,i ] <- DVA_G[ ,i ] + apply(T08_RDV_INT,1,sum)
rm( T08_RDV_INT); gc( )
print( paste( year[ i ], " is done !" ) )
}
VAEXbySVA <- DVA_G
rm( DVA_G);gc( )
RCAVAbySVAbyStateYear <- array( 0, dim=c( GN,length(year) ) )
WIbyYear <- array( 0,dim=c( N,length(year) ) )
XIbyYear <- array( 0, dim=c( GN,length(year) ) )
for ( i in 1:length(year) ){
x <- VAEXbySVA[ ,i ]
dim( x ) <- c( N,G )
WIbyYear[ ,i ] <- rowSums( x )/sum( x )
for ( s in 1:G ){
x <- VAEXbySVA[(1+(s-1)*N):(N+(s-1)*N), ]
XIbyYear[(1+(s-1)*N):(N+(s-1)*N),i ] <- x[ ,i ]/sum( x[ ,i ] )
RCAVAbySVAbyStateYear[(1+(s-1)*N):(N+(s-1)*N),i ] <-
XIbyYear[(1+(s-1)*N):(N+(s-1)*N),i ]/WIbyYear[ ,i ]
}
}
dimnames( RCAVAbySVAbyStateYear ) <- list( rownam,year )
RCA_DVA_f <- RCAVAbySVAbyStateYear
require( reshape )
# == -------------==============================
require( plyr )
nrownam <- rep( rownam,time=length( year ) )
nrownam2 <- array( year,dim=c( length(year),GN ) )
nrownam2 <- t( nrownam2 )
nrownam2 <- as.vector( nrownam2 )
nrownam <- paste( nrownam2,nrownam,sep = "." )
z <- adply( SVAbyFDbyYear,c( 3 ),.id = NULL )
rownames( z ) <- nrownam
SVAbyFDbyYear <- z
z <- adply( GVC_Pat_f,c( 3 ),.id = NULL )
rownames( z ) <- nrownam
GVC_Pat_f <- z
dim( VAX_Fs ) <- c( GN*length( year ),1 )
dimnames( VAX_Fs ) <- list(nrownam,"VAX_Fs")
dim( DVA_Fs ) <- c( GN*length( year ),1 )
dimnames( DVA_Fs ) <- list(nrownam,"DVA_Fs")
dim( RCA_DVA_f ) <- c( GN*length( year ),1 )
dimnames( RCA_DVA_f ) <- list(nrownam,"RCA_DVA_f")
flnm <- paste0( path,"/index1_PROD/Forward_SVA_WIOD.csv" )
write.csv( cbind(SVAbyFDbyYear,GVC_Pat_f,
VAX_Fs,DVA_Fs,RCA_DVA_f),file=flnm )
运行时显示:
Error in readChar(con, 5L, useBytes = TRUE) : 无法打开链结
此外: Warning message:
In readChar(con, 5L, useBytes = TRUE) :
无法打开压缩文件'D:/GVCinR/inc/2000/T01_DVA_FIN.RData',可能是因为'No such file or directory'
在之前的代码中并没有看到输出T01_DVA_FIN.RData,所以这一步不知道是从哪里来的,麻烦大神指导,十分感谢