Stata:变量中相同值连续出现的最大次数

2023-11-30

我的数据集中的观察结果是玩家和二进制变量temp1如果玩家采取了行动,则 up 等于 1,否则等于 0。 我想计算每个玩家的最大连续移动次数。


+------------+------------+-------+-------+-------+-------+-------+-------+
| simulation | playerlist | temp1 | temp2 | temp3 | temp4 | temp5 | temp6 |
+------------+------------+-------+-------+-------+-------+-------+-------+
|          1 |          1 |     0 |     1 |     1 |     1 |     0 |     0 |
|          1 |          2 |     1 |     0 |     0 |     0 |     1 |     1 |
+------------+------------+-------+-------+-------+-------+-------+-------+  

我的想法是在循环中生成辅助变量,这将计算连续的重复项,然后应用 egen、rowmax():


+------------+------------+------+------+------+------+------+------+------+
| simulation | playerlist | aux1 | aux2 | aux3 | aux4 | aux5 | aux6 | _max |
+------------+------------+------+------+------+------+------+------+------+
|          1 |          1 |    0 |    1 |    2 |    3 |    0 |    0 |    3 |
|          1 |          2 |    1 |    0 |    0 |    0 |    1 |    2 |    2 |
+------------+------------+------+------+------+------+------+------+------+  

我正在努力引入一个本地计数器变量,如果进行连续移动,该变量将递增 1,否则将重置为零(下面的代码保持辅助变量固定..):

    quietly forval i = 1/42 { /*42 is max number of variables temp*/
    local j = 1 
    gen aux`i'=.    
    local j = `j'+1
    replace aux`i'= `j' if temp`i'!=0
} 

战术回答

您可以连接您的move*将变量转化为单个字符串并查找最长的 1 子串。

egen history = concat(move*) 

gen max = 0 
quietly forval j = 1/6 { 
    replace max = `j' if strpos(history, substr("111111", 1, `j')) 
} 

如果数字远超过 6,请使用类似

 local lookfor : di _dup(42) "1" 
 quietly forval j = 1/42 { 
     replace max = `j' if strpos(history, substr("`lookfor'", 1, `j')) 
 } 

还比较http://www.stata-journal.com/article.html?article=dm0056

战略答案

就 Stata 而言,按行存储序列是有悖常理的。如果您能够获得更大的灵活性reshape long and tsset您的数据作为面板数据。请注意,这里的代码使用tsspell必须使用 SSC 安装ssc inst tsspell.

tsspell致力于识别某些条件仍然成立的咒语或跑步。这里的条件是变量为 1,并且由于唯一允许的其他值为 0,这相当于变量为正。tsspell创建三个变量,给出法术标识符、法术内的顺序以及法术是否结束。这里咒语的最大长度就是每场比赛的最大序列号。

. input simulation playerlist temp1 temp2 temp3 temp4 temp5 temp6 

 simulat~n  playerl~t      temp1      temp2      temp3      temp4      temp5      temp6
 1.   1   1  0  1  1  1  0  0 
 2.   1   2  1  0  0  0  1  1 
 3. end 

. reshape long temp , i(sim playerlist) j(seq) 
(note: j = 1 2 3 4 5 6)

 Data                               wide   ->   long
 -----------------------------------------------------------------------------
 Number of obs.                        2   ->      12
 Number of variables                   8   ->       4
 j variable (6 values)                     ->   seq
 xij variables:
                   temp1 temp2 ... temp6   ->   temp
 -----------------------------------------------------------------------------

. egen id = group(sim playerlist) 

. tsset id seq 
   panel variable:  id (strongly balanced)
    time variable:  seq, 1 to 6
            delta:  1 unit

. tsspell, p(temp) 

. egen max = max(_seq), by(id) 

. l

      +--------------------------------------------------------------------+
      | simula~n   player~t   seq   temp   id   _seq   _spell   _end   max |
      |--------------------------------------------------------------------|
   1. |        1          1     1      0    1      0        0      0     3 |
   2. |        1          1     2      1    1      1        1      0     3 |
   3. |        1          1     3      1    1      2        1      0     3 |
   4. |        1          1     4      1    1      3        1      1     3 |
   5. |        1          1     5      0    1      0        0      0     3 |
      |--------------------------------------------------------------------|
   6. |        1          1     6      0    1      0        0      0     3 |
   7. |        1          2     1      1    2      1        1      1     2 |
   8. |        1          2     2      0    2      0        0      0     2 |
   9. |        1          2     3      0    2      0        0      0     2 |
  10. |        1          2     4      0    2      0        0      0     2 |
      |--------------------------------------------------------------------|
  11. |        1          2     5      1    2      1        2      0     2 |
  12. |        1          2     6      1    2      2        2      1     2 |
      +--------------------------------------------------------------------+
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Stata:变量中相同值连续出现的最大次数 的相关文章

  • stata绘制roc曲线_绘制ROC曲线、找截断值,教你两种软件操作方法!

    我们在前面学习过用SPSS SPSS操作 多项测量指标的ROC曲线分析 和Stata Stata教程 ROC曲线下面积的比较 绘制ROC曲线 但是 最佳临界点 截断值 cut off point 该怎么选取呢 今天我们来讲一下如何用SPSS
  • 【番外】Stata软件安装教程

    将下载后的资源解压缩之后双击安装软件 xff1a 点击 下一步 点击 下一步 这里选择第二个 SE 这个选项 xff0c 然后点击 下一步 此处尽量不要修改安装路径 xff0c 尽量使用默认安装路径 然后一直点 下一步 即可 安装完成之后点
  • 怎么样在stata上安装pwcorr_a啊?findit pwcorr_a之后就是下面图那样?

    怎么样在stata上安装pwcorr a啊 xff1f findit pwcorr a之后就是下面图那样 xff1f 转载 xff1a 我的电脑用findit 不行 xff0c 经管之家的要收费 xff0c 在Gitte网站找到一个开源的压
  • 样本选择模型 & 处理效应模型

    一 样本选择偏差与自选择偏差 样本选择偏差 样本选择偏差的非随机选择机制在于对样本的选择不随机 在样本数据的采集过程中 只对某部分群体进行调查 但这部分群体与其他群体在某些方面的特征差异较大 因此根据这样的样本做回归得到的普适性结论并不可信
  • Stata数据处理。如何处理删除某个公司的某个年份缺失的公司的数据

    stata处理数据 删除某个公司的某个年份缺失的公司的数据 例如 code year 1 2002 1 2003 1 2004 1 2005 2 2002 2 2003 2 2004 code有很多 不知道哪个年份缺少 如何解决 谢谢大家
  • CGSS2015问卷数据STATA重编码命令(部分)

    今天在写论文时处理的CGSS数据 保存下来以待以后用 选取城市样本 drop if s1 2 选取18 45岁的样本 drop if a301 gt 1997 drop if a301 lt 1970 计算年龄 gen nianling 2
  • 【Stata】Stata论文的一个有趣的行文方向分享

    目录 Stata论文的一个有趣的行文方向分享 一 前言 二 文章 三 数据集分享 一 前言 应用回归的课程论文 最大的难度是没有一个合适的行文方向 这里分享一下我在写论文之前的一个有趣的方向 数据集也会分享 二 文章 三 数据集分享 链接
  • 一行代码实现安慰剂检验

    1 什么是安慰剂检验 随着 因果推断方法 在实证研究中的使用比例不断提升 越来越多的文章也会进行安慰剂检验 其检验基本原理与医学中的安慰剂类似 即使用 假的政策发生时间或实验组 进行分析 以检验能否得到政策效应 如果依然得到了政策效应 则表
  • stata学习笔记

    如何认识数据 S1 打开数据 首先 打开stata 你会看到这样的一个界面 面对全英文的界面 需要知道每一块位置代表着什么 方便以后的操作 中下 Command 命令窗口 你可以在此窗口输入想要执行的stata命令 左上 Review 历史
  • 浙江大学【面板数据分析与STATA应用】——第一讲短面板数据分析

    基本概念 面板数据及分类 面板数据分类 短面板和长面板 动态面板和静态面板 平衡面板和非平衡面板 截面数大于时间数就是短面板 反之 则为长面板 解释变量包含被解释变量的滞后值则为动态面板 反之 则为静态面板 平衡面板 每个个体在想他的时间内
  • stata如何看某个命令的options?即逗号后面可以加上哪些命令

    以codebook这一命令为例 在命令窗口输入 help codebook 则会出现以下内容
  • 将数组或 DataFrame 与其他信息一起保存在文件中

    统计软件Stata允许将短文本片段保存在数据集中 这是通过使用以下方法完成的notes and or characteristics 这是一个对我来说非常有价值的功能 因为它允许我保存各种信息 从提醒和待办事项列表到有关如何生成数据的信息
  • 是否有相当于 Stata 的 egen 函数? [复制]

    这个问题在这里已经有答案了 Stata 有一个非常好的命令 egen 这使得计算观察组的统计数据变得容易 例如 可以计算每个组的最大值 平均值和最小值 并将它们作为变量添加到详细数据集中 Stata 命令是一行代码 by group ege
  • 在 Python 中将 .CSV 文件转换为 .DTA 文件

    我希望通过 Python 自动化将许多 CSV 文件转换为 DTA 文件的过程 DTA 文件是由 Stata 统计语言处理的文件类型 然而 我还没有找到一种方法来做到这一点 The R语言有写 dta 它允许将 R 中的数据帧转换为 dta
  • 如何生成相关的 Uniform[0,1] 变量

    这个问题与如何生成具有不同分布的相关变量的数据集 在 Stata 中 假设我创建一个遵循 Uniform 0 1 分布的随机变量 set seed 100 gen random1 runiform 我现在想要创建第二个随机变量 它与第一个随
  • 显示迄今为止记录的另一个变量随时间推移获得的最高值的变量

    我有一个患者数据集及其随时间 以年为单位 与酒精相关的患者数据 如下所示 clear input long patid float year cohort 1051 1994 1 2051 1972 1 2051 1989 2 2051 1
  • R 中固定效应的 F 检验(面板数据)

    我正在尝试对面板数据 OLS 回归 在 R 中 的固定效应 个体特定的虚拟变量 的联合显着性进行 F 检验 但是我还没有找到一种方法来实现大量固定效应 理想情况下 我会在plm包 但是我还没有找到任何专门进行此测试的内容 这是 Stata
  • 在 coefplot 中仅绘制交互项

    在 Stata 中进行回归后 我尝试仅绘制交互项的系数 我无法使用社区贡献的命令coefplot 这是一个可重现的示例和我尝试的解决方案 sysuse auto clear reg price foreign i turn foreign
  • Stata 中各个图表的条形图颜色一致

    我在 Stata 中输出堆积条形图 每个堆积条形图从下到上排序 最大 gt 每个团队的最小获胜百分比 clear set obs 10 gen team yankees if inlist n 1 6 replace team red so
  • 将外语从csv文件导入到Stata

    我正在使用Stata 12 我遇到了以下问题 我正在使用以下命令将一堆 csv 文件导入到 Statainsheet命令 数据集可能包括俄语 克罗地亚语 土耳其语等 我认为它们是用 UTF 8 编码的 在 csv 文件中 它们是正确的 我把

随机推荐

  • UIImageView 中的 UIImage 大小

    我有一些UIImage并将其显示在UIImageView 我需要使用UIViewContentModeScaleAspectFit内容模式 这是简单的代码 UIImageView imageView UIImageView alloc in
  • Guice:根据谁获得它来注入不同的实现?

    我有两个第三方类 它们都实现了Authorizer界面 我需要为每个注入不同的实现 如果我做一个 Provides 我怎样才能实现它 以便它提供运行时所需的实现 提供者不知道是谁要求注射 理论上我可以使用 Named 但我无法修改正在注入的
  • C# 数组子集获取

    我有一个字节数组 我想确定这个字节数组的内容是否作为连续序列存在于另一个更大的数组中 执行此操作的最简单方法是什么 天真的方法是 public static bool IsSubsetOf byte set byte subset for
  • iPhone 应用程序需要启动画面吗?

    这是我第一次提交我的应用程序 我从文档中知道应该指定启动图像 但我创建了自己的启动视图 带有 uilabel 和 uiimageview 的视图控制器 并且效果很好 但如果我不制作发布图片 我担心不被接受 有人可以给我一些建议吗 苹果引用
  • Firefox 扩展程序不显示图标

    我已经实现了示例 mozilla firefox 扩展来在工具栏上显示 firefox 图标 操作按钮 它将打开 http www mozilla org 它在 jpm run 中工作正常 然后我使用 jpm xpi 创建了该包并创建了 x
  • 如何实现-在__del__上写入文件?

    我正在尝试对类 obj 销毁进行一些活动 如何实现文件打开 del 功能 我使用的是Python 3 4 class iam object def init self print I m born def del self f open m
  • 如何在实体框架中查找具有指定日期范围列表的日期?

    我有一个我创建的类的 IEnumerable 来包含日期范围 该类看起来像这样 public class Range
  • 如何使用 PHP 中的 API 在 facebook 上发布墙?

    我想使用 facebook API 在 facebook 墙上发布分数 确保您有 Facebook SDKhttps github com facebook php sdk 启动 Facebook API facebook new Face
  • JVector Map如何在标记悬停时获得动态图像

    嗨 我正在使用JVector Map我知道我的问题可能以前被问过 而且我也发现了这篇文章jvectormap 标记标签图像也是 但是我的问题还是没有解决 我想在工具提示中显示每个标记的图片 当鼠标悬停时它会显示该图片 这是我的代码 worl
  • 需要 Gradle 2.1 迁移到 Gradle 包装器并同步项目

    我正在尝试建立u202杰克 沃顿 Jake Wharton 的 Android 项目 我的 android studio 无法构建该项目 显示的错误如下 Gradle 2 1 is required Migrate to Gradle wr
  • mySQL 中奇怪的 Ascii 字符。需要查询才能删除

    我正在尝试找出如何从 mySQL 数据库中删除该字符 它是由其他没有做得很好的人为我转换的 表是 ps product lang 字段是描述和描述短 我认为我的查询应该是 更新 ps product lang 设置描述 替换 描述 但是我应
  • Mapbox:libc++abi.dylib:以 NSException 类型的未捕获异常终止(lldb)

    我在 Android 上工作时一直在实现 Mapbox 通过 CocoaPods 安装后在 iOS 上遇到错误 我得到了framework not found Mapbox但在以下答案之后目标覆盖 FRAMEWORK SEARCH PATH
  • R 中的直方图 - x 轴未正确居中

    我有一个列表中的直方图d我只需输入即可创建的值 hist d And this is what I get 我怎样才能使x轴一直向左延伸到该图的原点 左下角 为什么会在 0 4处截止 宏的回答是迄今为止最简单的路线 但是 如果您确实对默认行
  • 在 Xamarin.iOS 中将选项卡移动到顶部时删除底部的空白

    我需要根据 Youtube 的最新 UI 创建选项卡式菜单 并在 Android 和 iOS 上显示顶部菜单 Android 上的默认行为是在顶部显示菜单 这样就可以正常工作 在 iOS 上 我创建了一个自定义渲染 并使用以下代码将栏的位置
  • Java、C、PHP 的自动补全库?

    我正在为我的文本编辑器构建一个开源自动完成插件 因为它还没有 是否有我可以使用的自动完成库 即某种包含 Java C PHP 等常用函数的数据文件 我已经构建了插件 但我并不特别想浏览所有 Java 文档并手写插件将引用的实际库 我只是在寻
  • 如何让 Liferay 6.1.0 在找不到资源时始终重定向到 404 页面?

    我为我拥有的 Liferay 网站创建了一个简单的钩子 它包含一个覆盖默认 Liferay 404 的 404 jsp 如果我输入特定页面 它可以正常工作 例如 即将http localhost 8080 joky jsp throws 严
  • AspectJ 和 CDI

    我正在尝试找出一种将 bean 注入某个方面的方法 I mean public class Greeter public String greet String name public aspect GreeterAspect Inject
  • 使用一系列角度创建循环列表 python

    我有一个列表列表 其中包含角度集的下限和上限 就像是 1 22 2 24 359 15 360 21 总共360个元素 现在我想检查从 1 到 360 的每个角度 列表中包含该角度的元素 我正在考虑使用下限和上限来创建列表的所有元素rang
  • JAVA NIO Bytebuffer.allocateDirect() 对 int 的大小限制

    我正在尝试制作堆外内存缓冲区 我想要非常大的缓冲区 比如 10GB 我听说jvm堆有时会因为full GC而冻结 所以 我尝试用 java nio ByteBuffer 制作缓冲区 但是 我遇到了很大的困难 java nio ByteBuf
  • Stata:变量中相同值连续出现的最大次数

    我的数据集中的观察结果是玩家和二进制变量temp1如果玩家采取了行动 则 up 等于 1 否则等于 0 我想计算每个玩家的最大连续移动次数 simulation playerlist temp1 temp2 temp3 temp4 temp