if(ncol(x)== 1L){时的错误:长度为零

时间:2019-06-20 10:51:40

标签: r tidyr panel-data splitstackshape

我正在尝试使用以下数据创建面板数据集:

我的数据如下

country   GDP_2012 GDP_2013 GDP_2014 Exports_2012 Exports_2013 Exports_2014
A           50        150      160      5            10           0  
B           10         20       30      0             0           0 
C           20         25       30      10            5           1

我希望将其转换为:

country year  GDP  Exports
A       2012   50    5
A       2013   150   10 
A       2014   60    0
B       2012   10    0
B       2013   20    0
B       2014   30    0
C       2012   20    10
C       2013   25    5 
C       2014   30    1 

我一直在使用splitstackshape将其转换为面板

dt <- splitstackshape::merged.stack(dt,
                                 id.vars = "Country",
                                 var.stubs = c("GDP", "Exports"),
                                 sep = "_",
                                 keep.all = TRUE)

我的数据集已更改为数据框,并且所有列均以字符表示,但是,我不断收到错误消息

Error in if (ncol(x) == 1L) { : argument is of length zero

我无法纠正这个问题,因为数据集中有0,这是否有可能发生? 我尝试过is.null,它会返回FALSE。所以我不确定接下来的步骤

0 个答案:

没有答案