我想遍历一个名为 的字符串向量country
,其中包含国家代码,例如AFG
,ETH
等。
在Stata
代码中看起来像这样:
levelsof country, local(xtry)
foreach x in local xtry:
graph command here if xtry=="`x'"
graph save mygraph
}
是否有类似的命令levelsof
,以及将数据限制为特定国家代码的“if”语句,这是一个字符串,每个图表都将从该代码创建?
你会使用这样的东西:
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"))
顺便说一句,如果与构造 for 循环不同,apply 函数组实际上是相似的东西,问题是 apply 函数组是此类循环的包装器,并且特定于不同的数据结构和要求 - 一种更 Rish 的方式做循环。我不知道速度提升的说法有多有效——我持怀疑态度。除此之外,如果我理解您的要求(我不知道 stata),使用 R 对数据进行子集化然后为每个子集绘制多个图可能会更容易。