2014-03-28 132 views
-1

如何获得每个独立实例的下列MWE中的结果总数?Stata:获得行状态的聚集

clear 
input str16 username betnumber stake probability subsequentwinnings 
player1 1 10 0.5 -10 
player2 1 10 0.5 10 
player3 1 10 0.5 -10 
player4 1 10 0.5 -10 

player2 2 20 0.5 -20 
player3 2 20 0.5 -20 
end 

generate result = "L" 
replace result = "W" if (subsequentwinnings >0) 

bysort username (betnumber): gen resulthistory = result[1] 
by username : replace resulthistory = resulthistory[_n-1] + result if _n > 1 

我是否需要发出命令preserve/restore,通过它们之间resulthistory聚集?

+1

我不清楚你想要达到什么效果,但是对于这样的运动,“保护”和“恢复”听起来不对。这些命令使您可以放弃在这些命令之间创建的数据的所有更改,因此在使用这些块时很难汇总结果。 –

回答

3

让我们回答你提出的问题。唯一的事件只发生一次;这就是这个词的意思。因此,每个唯一值都会出现一次,并且您不需要程序来计算1作为答案。你可能想知道出现一次的历史导致的,那些是可识别的可变

bysort resultshistory : gen unique = _N == 1 

现在让我们假设你没有说你说的一个指标。我建议在前面的答案阅读

在不同的观测(为什么这个词“独一无二”是一种误导): http://www.stata-journal.com/sjpdf.html?articlenum=dm0042

因为这是整个问题的审查,对各种命令的详细信息被使用,我会在那里停下来。

您的各种问题都擅长于在问题出现之前显示您的代码,但您并不总是显示试图回答您的问题的代码。您也没有明确表明您正在查看文档,包括StataCorp常见问题解答和Stata日记本中的可访问资料,因此尽管我试图帮助您,但我也会因为没有显示尝试的代码解决方案而不愿意显示研究工作。

+0

独特之战确实早已失传。建议适当注意。我会相应地编辑未来的问题。 – user2146441