2015-01-07 51 views
1

我想將具有一些預生成值的標量寫入文件。這是一個非常類似於我想要完成的示例,但這些標量不會寫任何輸出。我試圖解引用標準,可以在代碼中看到,但沒有成功。將標量寫入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 

回答

1

這裏不需要解引用標量。他們沒有臨時名字;你爲它們分配了永久名稱,所以沒有別名可以剝離。我猜測編寫標量的多個版本的代碼是在正確的代碼中猜測的,並且你只需要每個標量一次。爲了其他平臺上的用戶,我也刪除了特定的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()消除歧義。

+0

完美!這回答了我的問題。非常感謝你! – OAM