3

我想遍历一个名为 的字符串向量country,其中包含国家代码,例如AFG,ETH等。

Stata代码中看起来像这样:

levelsof country, local(xtry)
foreach x in local xtry:
 graph command here if xtry=="`x'"
 graph save mygraph

}

是否有类似的命令levelsof,以及将数据限制为特定国家代码的“if”语句,这是一个字符串,每个图表都将从该代码创建?

4

2 回答 2

3

你会使用这样的东西:

for (cn in levels(country))
    {
    if (cn=="x")
       {
       <do something>
       }
    else
       {
       <do something else>
       }
    }

如果您想检查多个国家/地区,您可以使用

if (cn == "x" | cn == "y")

或者也

if (cn %in% c("x", "y", "z"))
于 2013-02-19T06:55:21.180 回答
0

顺便说一句,如果与构造 for 循环不同,apply 函数组实际上是相似的东西,问题是 apply 函数组是此类循环的包装器,并且特定于不同的数据结构和要求 - 一种更 Rish 的方式做循环。我不知道速度提升的说法有多有效——我持怀疑态度。除此之外,如果我理解您的要求(我不知道 stata),使用 R 对数据进行子集化然后为每个子集绘制多个图可能会更容易。

于 2013-02-19T10:29:12.567 回答