我在Stata中的变量形式如下:
First Name: Allen
Last Name: Von Schmidt
Birth Year: 1965
County: Cape May
State: New Jersey
First Name: Lee Roy
Last Name: McBride
Birth Year: 1967
County: Cook
State: Illinois
我想outsheet
他们在.txt中创建引号和逗号分隔的行:
"Allen,"Von Schmidt","1965","Cape May","New Jersey"
"Lee Roy","McBride","1967","Cook","Illinois"
如何使用outsheet
(或其他命令)执行此操作?我是否需要先将数字变成字符串?我是否需要先为每个变量添加逗号?
我尝试了以下内容:
outsheet first last birth_year county state using FileName.txt, nolabel delim(",")
这似乎没有问题,只是它没有将数字变量放在“”。
中答案 0 :(得分:4)
我不明白你为什么要这样做,但Stata在其他地方的做法是只有字符串放在双引号中。因此,要输出数值变量就像它们是字符串一样,您需要先将它们转换为字符串变量。 tostring
命令是为此而设计的。
但这是一个尴尬的事情,总的来说是一个坏主意。
首先,更容易:如果使用tostring
,则更改数据,并且在新的字符串变量上无法进行数值运算。这相对容易解决。在使用save
之前,请确保先tostring
您的数据,然后在导出数据后再次将其读回。或者使用preserve
后跟restore
。
其次,问题更多:您需要担心任何非整数的数字变量的细节丢失。 tostring
确实有选项在这里提供帮助,但除非你进入导致十六进制的恶梦领域,否则无法保证每一点。 outsheet
任何方式都是如此,但警告不应该造成伤害。
我知道tostring
的历史,原作者。我会记录下来,虽然它是你想要做的解决方案,但是上面有一些陷阱,我不推荐这种工作方式。
最好解释为什么你认为你需要这样做。 outsheet
出口数字和字符串似乎很适合出口到其他软件,尤其是电子表格,用于许多用途。
P.S。正如其他地方所强调的那样,Stata并不认为“”是分隔符。它们是字符串的分隔符,但不是字段的分隔符(或Stata意义上的单词)。