如何在 Stata 中的字符串中使用局部变量
How to use local variable inside a string in Stata
我正在尝试将多个 csv 格式的文件导入 Stata。他们的名字遵循 "variable_2010" 格式。我想使用循环来导入和保存这些文件。我尝试了以下方法:
foreach var in varlist a b c d {
import "c:\`var'_2010.csv"
save ......
}
这不起作用。问题是 var
在路径内无法识别。我怎么能逃避这个问题?
翻了翻类似的问题,我好像找到了答案。这个link这里http://www.stata-journal.com/article.html?article=pr0042解决问题。只需使用正斜杠而不是反斜杠。
foreach
的使用似乎有些混淆。你可能是说
foreach var in a b c d {
import "c:/`var'_2010.csv"
}
关键字 varlist
用于 of
而不是 in
。如果以您原来的方式使用, varlist
只是要在循环中使用的文本,我认为这不是什么意思。仔细阅读help foreach
。
您已经发现了 "backstabbing backslash",并且不鼓励使用它。根据 OS,Stata 会进行相应的翻译,因此在处理文件目录时应始终使用 /
。
参考:
Stata tip 65: Beware the backstabbing backslash,Stata 期刊,作者:Nicholas J. Cox。
我正在尝试将多个 csv 格式的文件导入 Stata。他们的名字遵循 "variable_2010" 格式。我想使用循环来导入和保存这些文件。我尝试了以下方法:
foreach var in varlist a b c d {
import "c:\`var'_2010.csv"
save ......
}
这不起作用。问题是 var
在路径内无法识别。我怎么能逃避这个问题?
翻了翻类似的问题,我好像找到了答案。这个link这里http://www.stata-journal.com/article.html?article=pr0042解决问题。只需使用正斜杠而不是反斜杠。
foreach
的使用似乎有些混淆。你可能是说
foreach var in a b c d {
import "c:/`var'_2010.csv"
}
关键字 varlist
用于 of
而不是 in
。如果以您原来的方式使用, varlist
只是要在循环中使用的文本,我认为这不是什么意思。仔细阅读help foreach
。
您已经发现了 "backstabbing backslash",并且不鼓励使用它。根据 OS,Stata 会进行相应的翻译,因此在处理文件目录时应始终使用 /
。
参考:
Stata tip 65: Beware the backstabbing backslash,Stata 期刊,作者:Nicholas J. Cox。