【问题标题】:Generating sums of variables with loops in Stata在Stata中使用循环生成变量总和
【发布时间】:2014-08-23 06:48:25
【问题描述】:

我在尝试执行的循环中遇到了一些问题,并且可能与生成我想要的变量的语法有关。

简而言之,我想做的是对一组特定的观察结果进行总和,并将每个总和存储在一个单元格中以作为一个新变量。这是我使用的语法示例:

forvalues j=1/50 { replace x1 = sum(houses) if village==j'& year==2010 }

gen x2=. forvalues j=1/50 { replace x2 = sum(houses) if village==j' & year==2011 }

gen x3 =. forvalues j=1/50 { replace x3 = sum(houses) if village==j' & year==2012 }

这是来自包含 4000 多个观察值的数据集。因此,对于每个特定的 j,如果我成功使用上面的代码,我会得到每个 j 的唯一观察结果(我想要获得的),但我没有得到这个 - 这是所有房屋的总和,以年份和村庄为条件;每年每个村庄的房屋总和。如果有人能帮助我为每个变量中的每个 j 获得一个特定的观察结果,我将不胜感激。

【问题讨论】:

    标签: loops variables stata


    【解决方案1】:

    sum() 将返回一个运行总和,所以这可能不是你想要的。使用by: 前缀和egen 命令组合通常更容易解决此类问题。下面的一行命令将为您提供每个村庄和每年的房屋总数:

    bys village year: egen Nhouses = total(houses)
    

    【讨论】:

    • 请注意,help sum() 会将您直接带到定义。
    • 非常感谢。我试图主要通过互联网搜索语法(没有成功)。但这很有效。
    • 如果您想了解有关如何使用 Stata 的信息,我不会从查看 Internet 开始,而是从帮助文件开始。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 2017-08-06
    相关资源
    最近更新 更多