我想循环一个名为country
的字符串向量,其中包含国家/地区代码,例如AFG
,ETH
等。
在Stata
中,代码如下所示:
levelsof country, local(xtry)
foreach x in local xtry:
graph command here if xtry=="`x'"
graph save mygraph
}
是否有与levelsof
类似的命令,以及" if"将数据限制为特定国家/地区代码的语句,该代码是一个字符串,将从中创建每个图形?
答案 0 :(得分: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"))
答案 1 :(得分:0)
顺便说一下,如果与构造for循环不同,apply函数组实际上是类似的东西,那就是apply函数组是这些循环的包装器,并且特定于不同的数据结构和要求 - 更多Rish做循环的方式。我不知道速度提升声称有多有效 - 我持怀疑态度。除此之外如果我理解你的要求(我不知道stata),用R对数据进行子集可能更容易,然后为每个子集做几个图。