全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4296 7
2018-07-30
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,所以这一步不知道是从哪里来的,麻烦大神指导,十分感谢




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-7-31 14:21:41
帮顶。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-4 21:27:08
遇到同样的问题,楼主解决了吗
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-4 22:14:25
还没有,好像是预先设了一个R语言的模板,然后放入处理好的原始数据就可以跑了.....然而我两样都缺T..T
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-9-7 13:35:46
先执行文件家中的02.0.DecomposingExport.r程序代码,产生T01.....Rdata~T016.....RData文件同时保存。
这时再执行你贴的程序代码就应该没问题了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-12-23 11:31:08
楼主还有大家求交流 我的QQ是3056401858@qq.com  有没有同样在研究这个代码的伙伴可以找我 一起看可以快些
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群