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

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 ...

当然,也成功运行了

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

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

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

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值