我想计算一个变量的观察值,该变量由满足逻辑标准的其他变量的观察结果组成,并在assert
语句中使用它,以便对数据约束进行一些测试,例如:
generate myvar = (var1 == 0 & var2 > 0) | (var1 == 0 & var3b > 0)
assert magiccommand(myvar) == 0
其中magiccommand
应该是我正在寻找的命令或功能(不必是一个功能)。
我试过
count
:help count
并未提供有关如何计算观察结果的任何信息。一般来说,信息的联系非常差。sum()
:没有完成这项工作,图形输出会显示观察次数,但Stata的不良语言概念不允许以编程方式检索价值,也不会它通过help
在手册中提供信息检索的任何入口点。by
:一般来说解释不充分,似乎设计得太强大了。assert
的答案,但仍然对此感到震惊命令的复杂性,这是一项非常简单的任务。help _n
:"包含当前观察次数"没有解释当前观察的解释...... 我对自己能够找到答案的方式非常感兴趣,因为很难使用闭源软件,这种软件是在销售昂贵的书籍的基础上补偿恶意手册。
我必须在Windows 7上使用Stata
13。
答案 0 :(得分:2)
您可以使用summarize
:
clear
set more off
input ///
var1 var2 var3b
0 1 5
0 0 0
0 0 3
1 0 0
end
generate myvar = (var1 == 0 & var2 > 0) | (var1 == 0 & var3b > 0)
list
*-----
summarize myvar
assert r(sum) == 0
另一种方式是
<snip>
count if myvar
assert r(N) == 0
又一个:
<snip>
gen c = sum(myvar)
assert c[_N] == 0
help return
是一个参考。 help subscripting
是另一个。
search count observations
会将您带到count
,其内容非常明确,包括示例。我真的不明白为什么你说它“没有提供任何关于如何计算观察的信息”。另见
The Stata Journal, 第7卷第1期:第117-130页, 说到Stata:算一算吧 Nicholas J. Cox(http://www.stata-journal.com/article.html?article=pr0029)。
在充分尊重的情况下,我认为您在阅读help
文件和手册方面做得很差。你真的没有在帖子中解释length()
的意思。你假设Stata的编程范式与其他语言的范式相同,并且因为你没有研究它,你认为它是一个糟糕的。不同意见,我同意。它做的很好,有些不太好,但所有其他语言也是如此。 Stata开发人员可以通过多种方式寻求帮助(真的)。用户手册的第一部分清楚地解释了这一点。
如果我给出了无法解决问题的代码,那么您可能需要更好地解释自己。