0
点赞
收藏
分享

微信扫一扫

使用R语言做合成控制报错的解决方案

奋斗De奶爸 2022-03-11 阅读 20

Error unit.variable not found as numeric variable in foo

将数据集赋值到foo时,一直提醒各种数据格式错误,或找不到变量。

问题在于数据集的格式,以及每一个变量的格式

必须严格按照示例数据synth.data的格式
通过

class(synth.data)

查看数据集格式,

> class(synth.data)
[1] "data.frame"

再通过

str(synth.data)

查看每个变量的格式

'data.frame':	168 obs. of  7 variables:
 $ unit.num: num  2 2 2 2 2 2 2 2 2 2 ...
 $ year    : num  1980 1981 1982 1983 1984 ...
 $ name    : chr  "control.region.northeast" "control.region.northeast" "control.region.northeast" "control.region.northeast" ...
 $ Y       : num  132 129 127 128 123 ...
 $ X1      : num  NA 0.253 0.251 0.249 0.246 ...
 $ X2      : num  21.5 24.1 23.8 21.6 23.9 ...
 $ X3      : num  NA NA NA NA 17.9 ...

这里,必须注意⚠️⚠️⚠️

变量name的格式为chr

其余变量均为num

必须将自己数据集的每个变量格式改为示例的格式,否则就会报错。

这是我修改数据类别后的数据。

> str(DATA2)
'data.frame':	180 obs. of  13 variables:
 $ unit.num: num  1 1 1 1 1 1 1 1 1 1 ...
 $ year    : num  2018 2019 2020 2021 2022 ...
 $ name    : chr  "1" "1" "1" "1" ...
 $ Y       : num  203 204 206 211 213 ...
 $ X1      : num  546 203 233 325 331 ...
 $ X2      : num  95150 64875 63424 64364 65982 ...
 $ X3      : num  71658 71811 70094 70754 72343 ...
 $ X4      : num  1750 1573 6484 10422 954 ...
 $ X5      : num  37 34 26 27 16 15 11 18 22 29 ...
 $ X6      : num  101 104 103 103 102 ...
 $ X7      : num  47.3 10.8 29.6 29 40.7 ...
 $ X8      : num  127.2 98.3 163.9 184.5 240.7 ...
 $ X9      : num  14917 9575 15996 15212 15862 ...

当然,也成功运行了

不过真的没想到,我在这种小问题上花了三个小时😭😭😭

算了,附上我半夜跑出来的图,纪念一下下。

请添加图片描述
请添加图片描述

举报

相关推荐

0 条评论