&引用;svd(c)中的错误:';x'&引用;在R中使用synth()时
我正在使用R中的&引用;svd(c)中的错误:';x'&引用;在R中使用synth()时,r,svd,R,Svd,我正在使用R中的synth包来实现一种合成控制方法,其中我使用dataprep()函数来构造要传递给synth()的适当矩阵。也就是说,我调用dataprep(),如下所示: dataprep_out <- dataprep(foo = csv_data, predictors = vars_dep, predictors.op = "mean",
synth
包来实现一种合成控制方法,其中我使用dataprep()
函数来构造要传递给synth()
的适当矩阵。也就是说,我调用dataprep()
,如下所示:
dataprep_out <- dataprep(foo = csv_data,
predictors = vars_dep,
predictors.op = "mean",
time.predictors.prior = 2000:2010,
dependent = "Log_gdp",
unit.variable = "REG_FACTOR",
unit.names.variable = "REG_ID",
time.variable = "Year",
treatment.identifier = my_factor_treated,
controls.identifier = my_controls,
time.optimize.ssr = 2000:2010,
time.plot = 2000:2017
)
这很好,给了我预期的结果。但是,当我为另一个经过处理的观察重复同一段代码,但使用完全相同的控制时(即,my_factor\u treated
是dataprep()
中唯一已更改的参数),调用synth()
,我会得到以下错误:
svd(c)中的错误:“x”中的值无限或缺失
我正在努力寻找此错误的原因,还因为我不确定在执行synth()
期间,哪个对象正在传递给svd()
函数。dataprep()
返回的对象中没有一列只包含零,并且它们不包含Inf值(这很有意义,因为如果不是这样,这个错误也应该发生在第一次处理的观察上,对吗?)
如果有人能告诉我为什么会发生这种错误,以及我如何防止它,我将不胜感激。我已经检查了多个,但还没有找到我的答案。谢谢
另外,我不确定如何提供合适的MWE,因为我想我的问题与数据有关,我将无法共享我正在使用的数据集
synth_out <- synth(data.prep.obj = dataprep_out)