如何在Stata中的字符串内使用局部变量

如何在Stata中的字符串内使用局部变量,stata,Stata,我正在尝试将多个csv格式的文件导入Stata。它们的名称采用“variable_2010”格式。我想使用循环来导入和保存这些文件。我尝试了以下方法: foreach var in varlist a b c d { import "c:\`var'_2010.csv" save ...... } 这是行不通的。问题是路径内无法识别var。我怎样才能逃避这个问题 在搜索了类似的问题后,我似乎找到了答案。这里的链接解决了这个问题。用正斜杠代替反冲 foreach的使用似乎有点混乱。你可能是说 f

我正在尝试将多个csv格式的文件导入Stata。它们的名称采用“variable_2010”格式。我想使用循环来导入和保存这些文件。我尝试了以下方法:

foreach var in varlist a b c d {
import "c:\`var'_2010.csv"
save ......
}

这是行不通的。问题是路径内无法识别
var
。我怎样才能逃避这个问题

在搜索了类似的问题后,我似乎找到了答案。这里的链接解决了这个问题。用正斜杠代替反冲

foreach的使用似乎有点混乱。你可能是说

foreach var in a b c d {
   import "c:/`var'_2010.csv"
}
关键字
varlist
用于
,而不是
中的
。如果以您原来的方式使用,
varlist
只是循环中要使用的文本,我认为这不是它的意思。仔细阅读每个人的帮助

您已经发现了“反斜杠”,不鼓励使用它。根据操作系统的不同,Stata将进行相应的转换,因此在处理文件目录时应始终使用
/

参考资料:


Nicholas J.Cox所著的Stata杂志。

var
是一个本地宏。习惯于其他语言的人可能想称之为变量,但它不是Stata的变量,而是一个本地宏。