导入Excel并将其用于Stata do代码

导入Excel并将其用于Stata do代码,excel,stata,Excel,Stata,例如,假设我有这个Excel文件 然后,我手动将Excel上的内容放入这样的do文件中 replace A = 1 if B>=1 & B<=6 replace A = 2 if B>=23 & B<=2 replace A = 3 if B>=3 & B<=1 replace A = 4 if B>=5 & B<=3 如果B>=1&B=23&B=3&B=5&B,则替换A=1您可以导入excel此文件。让我们假设

例如,假设我有这个Excel文件

然后,我手动将Excel上的内容放入这样的do文件中

replace A = 1 if B>=1 & B<=6
replace A = 2 if B>=23 & B<=2
replace A = 3 if B>=3 & B<=1
replace A = 4 if B>=5 & B<=3

如果B>=1&B=23&B=3&B=5&B,则替换A=1您可以
导入excel
此文件。让我们假设标题是
A
B
,导入将它们作为数字变量生成。然后,新do文件的文本包含在

 gen text = "replace A = " + string(_n) +  " if inrange(A, " + string(A) + "," + string(B) + ")" 
您必须将其导出,然后在实际数据上运行

没有测试。我还建议您考虑在您最喜欢的文本编辑器中执行此操作


请注意,在您的示例中,许多比较总是错误的

多谢各位。我正在尝试这样做,但当我导入excel时,它会说“否;内存中的数据将丢失”,因为已经存在数据。我试图将“导入excel”行放入另一个do文件,并从主do文件调用do文件。但这也给了我“否;内存中的数据将丢失”错误。这里的目的是,您需要在空数据集上使用
import excel
创建do文件,然后才能在另一个数据集上使用它。一旦保存了do文件,就可以使用真实数据了。这不是您想要的吗?您的方法在dta中创建一个变量“text”。但实际上“如果B>=5&B=5&BIndeed,则替换A=4。因此,
文本的内容应保存为do文件。您是否在询问如何执行此操作?它只是一个带有一个变量的数据集。