首页 > 解决方案 > 为什么我在使用 R 函数 gsynth 时会出现此错误?

问题描述

我正在尝试使用 gsynth 函数生成合成控件。我有一个结果(Y),具有二元治疗分配(D),没有协变量,然后是每个唯一组的“id”编号,然后是 1-11 个时间段的“时间”。但是,每当我运行它时,我都会不断收到此错误。有人可以帮忙吗?

out <- gsynth(Y ~ D, data = data6, index = c("id","time"), force = "two-way", 
   CV = FALSE, r = c(0,5), se = TRUE, inference = "parametric", nboots = 1000, min.T0 = 6)

并行计算 ... 引导 ... ... rownames<-( *tmp*, value = iname[which(out$tr == 1)]) 中的错误:尝试在没有维度的对象上设置“行名”

标签: rerror-handlingcompiler-errors

解决方案


我有同样的问题。出现此错误的原因是“最佳”解决方案是 r*=0,因此最佳因子数为零。因此,结果为空。虽然我真的不知道是什么导致了这个问题,但有一个简单的方法可以解决它:

在 gsynth 函数中,不要将 r 设置为 r = c(0, 5),而是设置 r = c(1, 5)。这迫使 gsynth 函数忽略无因子解决方案,结果永远不能为空。

我知道这可能无法解决导致错误的“更深层次”问题,但至少它是一种至少从函数中获得结果的方法。


推荐阅读