Loops 删除具有相似名称的变量子集
我必须导入和更改一大组csv文件。在这个过程中的某个时候,我想使用以下代码Loops 删除具有相似名称的变量子集,loops,foreach,stata,Loops,Foreach,Stata,我必须导入和更改一大组csv文件。在这个过程中的某个时候,我想使用以下代码 local vlist materialcost* costofemployees* city country foreach v in vlist{ capture drop `v' } 但是,本地人不允许像materialcost* 或者,如果我尝试 foreach v of var materialcost* costofemployees* city cou
local vlist materialcost* costofemployees* city country
foreach v in vlist{
capture drop `v'
}
但是,本地人不允许像materialcost*
或者,如果我尝试
foreach v of var materialcost* costofemployees* city country {
capture drop `v'
}
我遇到了一个问题,因为它无法始终找到名称中带有materialcost
的变量,从而引发了一个错误
因此,我希望Stata删除所有以
materialcost
开头的变量,如果它们实际存在于数据中 首先,当地人不允许像materialcost*
这样的开放式描述的说法在事实上和原则上都是不正确的
我只是在斯塔塔做的:
. local vlist materialcost* costofemployees* city country
. di "`vlist'"
materialcost* costofemployees* city country
因此,分配给当地人的任务在实践中是可行的。原则是,本地人只是文本的容器,不知道文本可能是什么(或意味着什么),超过长度限制,不咬这里,或通常
你这么说的原因可能是这并不是你想要的
foreach v in vlist {
capture drop `v'
}
这种语法是合法的,但不是让foreach
处理刚刚定义的本地文件内容的方法。这个循环可以归结为
capture drop vlist
除非vlist
是数据集中的变量名,否则它将不起任何作用
你的主要问题是这个。如果你说
foreach v of var materialcost* costofemployees* city country {
然后,var
关键字后面的内容实际上是一个变量列表,如果不是这样,foreach
会在不进入循环的情况下将您抛出。它不会忽略异常。循环中的捕获
也帮不上忙;斯塔塔从来没有走那么远。然而,我的猜测是
foreach v in materialcost* costofemployees* city country {
capture drop `v'
}
对于您来说,应该是这样的:(a)您不会对可能存在的变量做出错误的声明;(b)
capture
捕获drop
如果这些变量不存在将引发的任何错误 首先,当地人不允许像materialcost*
这样的开放式描述的说法在事实上和原则上都是不正确的
我只是在斯塔塔做的:
. local vlist materialcost* costofemployees* city country
. di "`vlist'"
materialcost* costofemployees* city country
因此,分配给当地人的任务在实践中是可行的。原则是,本地人只是文本的容器,不知道文本可能是什么(或意味着什么),超过长度限制,不咬这里,或通常
你这么说的原因可能是这并不是你想要的
foreach v in vlist {
capture drop `v'
}
这种语法是合法的,但不是让foreach
处理刚刚定义的本地文件内容的方法。这个循环可以归结为
capture drop vlist
除非vlist
是数据集中的变量名,否则它将不起任何作用
你的主要问题是这个。如果你说
foreach v of var materialcost* costofemployees* city country {
然后,var
关键字后面的内容实际上是一个变量列表,如果不是这样,foreach
会在不进入循环的情况下将您抛出。它不会忽略异常。循环中的捕获
也帮不上忙;斯塔塔从来没有走那么远。然而,我的猜测是
foreach v in materialcost* costofemployees* city country {
capture drop `v'
}
对于您来说,应该是这样的:(a)您不会对可能存在的变量做出错误的声明;(b)
capture
捕获drop
如果这些变量不存在将引发的任何错误 materialcost*
不会拾取名称中包含materialcost
的所有变量,只拾取以该方式开头的变量。materialcost*
不会拾取名称中包含materialcost
的所有变量,只拾取以该方式开头的变量。感谢您的详细解释。我最初的说法确实不正确。当我试着自己展示本地图片时,我忘记了导致我错误结论的“”号。谢谢你的详细解释。我最初的说法确实不正确。当我试着自己显示本地数据时,我忘记了导致错误结论的“”号。