在 Stata 中将标量写入文件

Writing scalars into a file in Stata

我想将具有一些预生成值的标量写入文件。这是一个与我试图完成的非常相似的示例,但这些标量没有写入任何输出。我试图取消引用标量,如代码中所示,但没有成功。

scalar Sc1b  = 11
scalar Sc2b  = 22
scalar Sc3b  = 33
scalar Sc4b  = 44
scalar Sc5b  = 55
scalar Sc6b  = 66
scalar Sc7b  = 77
scalar Sc8b  = 88

file open myfile using"C:/mytable.txt", write replace

forvalues i=1/8 {
    forvalues q=1/8 {
        display `i', `q', `Sc`i'b', ("`Sc`i'b'"), ("`Sc("`i'")b'")  
        file write myfile ("`i'") _tab ("`q'") _tab `Sc`i'b' _tab ("`Sc`q'b'") _tab ("`Sc("`q'")b'") _n
    }
}

file close myfile

您不需要在此处取消引用标量。他们没有临时名称;您为它们分配了永久名称,因此没有别名可以剥离。我猜测用于编写标量的多个版本的代码是对正确代码的猜测,并且您只需要每个标量一次。为了其他平台上的参考,我还删除了相当具体的 Windows 参考。

scalar Sc1b  = 11
scalar Sc2b  = 22
scalar Sc3b  = 33
scalar Sc4b  = 44
scalar Sc5b  = 55
scalar Sc6b  = 66
scalar Sc7b  = 77
scalar Sc8b  = 88

file open myfile using "mytable.txt", write replace

forvalues i=1/8 {
    forvalues q=1/8 {
        display `i', `q', Sc`i'b 
        file write myfile ("`i'") _tab ("`q'") _tab (Sc`i'b) _n
    }
}

file close myfile

但是请注意,此代码假定不存在与您的标量同名或名称缩写为相同名称的变量。标量和变量共享同一个命名空间。如有必要,使用 scalar() 消除歧义。