我正在使用dataprepSynth 包的功能(参见https://cran.r-project.org/web/packages/Synth/Synth.pdf https://cran.r-project.org/web/packages/Synth/Synth.pdf).
我想在 R 中循环执行以下命令:
dataprep.out <- dataprep(foo=expenditures,
predictors=c("pop_tot", "share_yng", "share_old", "unempl", "sign_pop_initiative", "cab_size", "parl_size"),
predictors.op="mean",
dependent="exp_welf",
unit.variable="canton",
unit.names.variable="canton_abr",
time.variable="year",
treatment.identifier=7,
controls.identifier=c(6, 8, 15, 16),
time.optimize.ssr=1980:1995,
time.plot=1980:2007,
time.predictors.prior=1980:1995
)
class(dataprep.out)
[1] "list"
到目前为止,一切都很好。结果是一个列表[8]。现在我想循环该命令(注意其中的变化治疗标识符 and 控件标识符:
for (i in c(6,8,15,16)){dataprep(foo=expenditures,
predictors=c("pop_tot", "share_yng", "share_old", "unempl", "sign_pop_initiative", "cab_size", "parl_size"),
predictors.op="mean",
dependent="exp_welf",
unit.variable="canton",
unit.names.variable="canton_abr",
time.variable="year",
treatment.identifier=i,
controls.identifier=c(6,8,15,16)[c(6,8,15,16) !=i],
time.optimize.ssr=1980:1995,
time.plot=1980:2007,
time.predictors.prior=1980:1995)}
如何将每个迭代保存在它自己的列表中?我想要一个清单,例如dataprep.out"i",对于每次迭代以及每个对象“i”(dataprep.out6;dataprep.out8 等)。
我想我必须首先创建这些对象,以便循环可以将其结果保存到相应的列表中。尽管如此,我仍在努力思考我必须准确创建什么对象。而且我不知道如何告诉 for 循环将每个结果分配给仅在“i”中变化的列表(dataprep.out“i”,其中“i”变化)。