【stata】egenmore函数速查表

一、简介

egenmore 是一个用于 Stata 的扩展包,包含了一组扩展的 egen 函数,超出了 Stata 内置的 egen 函数集。这些扩展函数提供了更广泛的操作,包括字符串处理、时间序列分析、数值运算、数据分组和汇总等,进一步增强了 Stata 在数据处理和分析中的功能。

要使用 egenmore,你需要先通过以下命令在 Stata 中安装这个扩展包:

ssc install egenmore,replace

安装后,你可以像使用内置的 egen 函数一样,使用 egenmore 提供的扩展函数。

二、函数类型

函数根据主题分为以下几类:

  • 分组与图形化
  • 字符串、数字与转换
  • 日期、时间与时间序列
  • 汇总与估计
  • 第一与最后
  • 随机数
  • 行操作

三、分组与图形化

  • axis(varlist):为图形构建分类轴变量。生成一个变量,值为1, 2, …,代表 varlist 形成的组。支持 gaplabel()missingreverse 选项。适用于分类变量的排序和图表准备。
  • clsst(varname):返回最接近指定值的数字。later 指定在相等时取较晚的值。
  • egroup(varlist)egengroup() 的扩展,增加了 label(lblvarlist) 选项。
  • group2(varlist)egengroup() 的扩展,增加了按指定 egen 调用结果排序的功能。
  • mlabvpos(yvar xvar):自动生成标记标签位置的变量,用于散点图中标记标签的钟表位置分布。

四、字符串、数字与转换

  • base(varname):将整数变量转换为指定基数(默认2)的字符串表示形式。
  • decimal(varlist):将变量列表的值视为指定基数(默认2)的表示,并生成十进制等价值。
  • incss(strvarlist):标识字符串列表中是否包含指定子字符串。
  • iso3166(varname):将国家名称映射为ISO 3166-1-alpha-2代码,或反之。支持 originlanguageverbose 选项。
  • msub(strvar):替换字符串变量中的特定子字符串。
  • noccur(strvar):计算字符串变量中指定子字符串的出现次数。
  • nss(strvar):返回字符串变量中指定子字符串的出现次数。
  • ntos(numvar):将数值变量映射为字符串变量。
  • nwords(strvar):返回字符串变量中的单词数。
  • repeat():按顺序生成重复值列表。
  • sieve(strvar):根据指定条件选择字符串中的字符。
  • ston(strvar):将字符串变量映射为数值变量。
  • truncdig(varname):按指定的十进制位数截断数值变量。
  • wordof(strvar):返回字符串变量中的第 # 个单词。

五、日期、时间与时间序列

  • bom(m y):生成指定月份和年份的月初日期。
  • bomd(datevar):生成包含指定日期的月份的月初日期。
  • dayofyear(daily_date_variable):生成指定日期变量的年份中的天数。
  • dhms(d h m s):生成包含小时、分钟和秒的日期变量。
  • elap(time):生成包含天数、小时、分钟和秒数的字符串变量。
  • elap2(time1 time2):生成表示两个时间值之间间隔的字符串变量。
  • eom(m y):生成指定月份和年份的月末日期。
  • eomd(datevar):生成包含指定日期的月份的月末日期。
  • ewma(timeseriesvar):计算指数加权移动平均值。
  • filter(timeseriesvar):计算线性滤波器的值。
  • foy(daily_date_variable):生成指定日期变量的年份中经过的分数。
  • hmm(timevar):生成表示时间的小时和分钟字符串变量。
  • hmmss(timevar):生成表示时间的小时、分钟和秒数字符串变量。
  • hms(h m s):生成包含秒数的时间变量。
  • minutes(strvar):返回表示为 [hh:]mm:ss 形式的时间变量的分钟数。
  • ncyear(datevar):返回以指定月份和日期为起点的非日历年份的整数变量。
  • record(exp):生成指定表达式到目前为止的最大或最小值。
  • seconds(strvar):返回表示为 [hh:]mm:ss 形式的时间变量的秒数。
  • tod(time):生成包含小时、分钟和秒数的字符串变量。

六、汇总与估计

  • adjl(varname):计算下限值。
  • adju(varname):计算上限值。
  • corr(varname1 varname2):返回两个变量的相关系数。
  • d2(exp):返回从中位数的平均绝对偏差。
  • density(varname):计算值在指定宽度的区间中的密度。
  • gmean(exp):返回几何平均值。
  • hmean(exp):返回调和平均值。
  • nmiss(exp):返回变量中缺失值的数量。
  • nvals(varname):返回变量中不同值的数量。
  • outside(varname):计算异常值。
  • ridit(varname):计算 ridit
  • semean(exp):计算平均值的标准误。
  • sumoth(exp):返回组内其他值的总和。
  • var(exp):生成包含指定表达式方差的常数。
  • wpctile(varname):计算指定百分位数。
  • wtfreq(exp):生成加权频率变量。
  • xtile(varname):按指定的百分位数对变量进行分类。

七、第一与最后

  • first(varname):返回第一个非缺失值。
  • ifirst(numvar):返回整数 # 的第一次出现。
  • ilast(numvar):返回整数 # 的最后一次出现。
  • lastnm(varname):返回最后一个非缺失值。

八、随机数

  • mixnorm():生成混合正态分布的随机变量。
  • rndint():生成指定范围内的随机整数。
  • rndsub():随机将观测分成若干组或子样本。

九、行操作

  • rall(varlist):返回满足指定条件的观测的1,否则为0。
  • rany(varlist):返回满足指定条件的任意变量的观测的1,否则为0。
  • rcount(varlist):返回满足指定条件的变量数量。
  • rowmedian(varlist):返回行中变量的中位数。
  • rownvals(numvarlist):返回观测中不同数值的数量。
  • rowsvals(strvarlist):返回观测中不同字符串的数量。
  • rsum2(varlist):计算变量列表的行和,考虑缺失值。

详细说明

Grouping and Graphing
  • axis(varlist)
    生成一个用于绘图的分类轴变量。该变量根据 varlist 中的分组取值从 1 开始递增。主要选项包括:
    • gap:在变量值变化时,增加一个间隙。
    • label(lblvarlist):为生成的分类变量添加标签,默认使用 varlist 的值。
    • missing:将缺失值视为普通值,而不是分配给单独的组。
    • reverse:反转分组编号顺序。
  • clsst(varname), values(numlist) [later]
    找出最接近 varname 中数值的 values() 列表中的数值,并生成新的变量。主要选项:
    • later:在存在多个等距离数值时,选择列表中靠后的值。
  • egroup(varlist)
    扩展了 egengroup() 功能,添加了 label(lblvarlist) 选项,可以为分组添加原始值或标签。
  • group2(varlist) sort(egen_call)
    根据 egen_call 的结果排序并生成分组变量,提供了比 egengroup() 更灵活的排序选项。
  • mlabvpos(yvar xvar) [log polynomial(#) matrix(5x5 matrix)]
    为散点图生成标签位置变量。根据 yvar 和 xvar 的分布生成时钟位置(如 1 点钟、2 点钟等),并根据数据位置调整标签位置。
    主要选项:
    • log:使用 xvar 的对数进行回归残差计算。
    • polynomial(#):用 xvar 的多项式进行回归残差计算。
    • matrix(#):自定义时钟位置规则的 5x5 矩阵。
Strings, Numbers and Conversions
  • base(varname) [, base(#)]
    将整数变量 varname 转换为指定基数(如二进制、八进制等)的字符串表示。默认基数为 2。
  • decimal(varlist) [, base(#)]
    将变量组 varlist 视为指定基数的数字的每一位,并生成其十进制表示。
  • incss(strvarlist) , substr(substring) [insensitive]
    在字符串变量列表 strvarlist 中查找 substring 的出现次数,并生成一个新变量指示是否存在该子字符串。
  • iso3166(varname) [, origin(codes|names) language(en|fr) verbose update]
    根据 ISO 3166 标准将国家名称和国家代码相互转换。
    主要选项:
    • origin(codes|names):指定现有变量是国家代码还是国家名称。
    • language(en|fr):指定国家名称的语言。
    • verbose:在转换过程中,显示无法识别的国家名称。
    • update:从互联网更新 ISO 3166 数据。
  • msub(strvar), find(findstr) [replace(replacestr) n(#) word]
    替换字符串变量 strvar 中的部分内容。
    主要选项:
    • replace(replacestr):指定替换内容。
    • n(#):只替换前 # 个出现的子字符串。
    • word:只替换独立的单词。
  • noccur(strvar), string(substr)
    计算字符串变量 strvar 中子字符串 substr 的非重叠出现次数。
  • ntos(numvar), from(numlist) to(list of string values)
    将数值变量 numvar 转换为字符串,映射指定的数值列表到相应的字符串。
  • repeat() , values(value_list) [by(byvarlist) block(#)]
    生成重复的序列值。
    主要选项:
    • by(byvarlist):按组生成序列。
    • block(#):指定重复块的大小。
  • sieve(strvar), { keep(classes) | char(chars) | omit(chars) }
    从字符串变量 strvar 中选择或去除指定的字符。
    主要选项:
    • keep(classes):保留某些类别的字符(如字母、数字)。
    • char(chars):保留特定字符。
    • omit(chars):去除特定字符。
  • ston(strvar), from(list of string values) to(numlist)
    将字符串变量 strvar 映射到数值变量。
  • truncdig(varname), dig(#)
    将数值变量 varname 保留指定的小数位数。dig() 参数可以是正数、零或负数,负数表示按千位、百位进行分段。
  • wordof(strvar), word(#)
    提取字符串变量 strvar 中的第 # 个单词。支持正向和反向提取。
Dates, Times and Time Series
  • bom(m y) [, lag(lag) format(format) work]
    生成指定年月的月初日期变量。
    主要选项:
    • lag(lag):生成之前几个月的月初日期。
    • format(format):指定日期格式。
    • work:确保生成的日期是工作日。
  • bomd(datevar) [, lag(lag) format(format) work]
    生成包含指定日期的月份的月初日期,选项与 bom() 类似。
  • dayofyear(daily_date_variable) [, month(#) day(#)]
    根据给定的日日期变量,生成年内的天数。默认从 1 月 1 日开始,可以指定其他起始日期。
  • dhms(d h m s) [, format(format)]
    根据给定的日期和时间生成日期时间变量。
  • elap(time) [, format(format)]
    生成一个字符串变量,表示指定时间变量的时间间隔(天、小时、分钟和秒)。
  • eom(m y) [, lag(lag) format(format) work]
    生成指定年月的月末日期变量。选项与 bom() 类似。
  • eomd(datevar) [, lag(lag) format(format) work]
    生成包含指定日期的月份的月末日期,选项与 eom() 类似。
  • ewma(timeseriesvar), a(#)
    计算指数加权移动平均值,需要先用 tsset 声明时间序列数据。
  • filter(timeseriesvar), lags(numlist) [coef(numlist) {normalise | normalize}]
    计算时间序列变量的线性滤波器。
    主要选项:
    • lags(numlist):指定滞后期。
    • coef(numlist):指定系数。
    • normalise | normalize:使系数总和为 1,生成加权均值。
  • foy(daily_date_variable) [, month(#) day(#)]
    生成从指定日期开始的年度分数(如年内已过的天数占全年天数的比例)。
  • hmm(timevar) [, round(#) trim]
    生成一个字符串变量,将时间变量以小时和分钟的形式表示。
    主要选项:
    • round(#):四舍五入到最近的时间单位。
    • trim:去除不必要的前导零和冒号。
Summaries and Estimates
  • adjl(varname) [, by(byvarlist) factor(#)]
    计算相邻的较低值。用于识别箱线图中的下须数据点。默认 factor() 为 1.5。
  • adju(varname) [, by(byvarlist) factor(#)]
    计算相邻的较高值。用于识别箱线图中的上须数据点。默认 factor() 为 1.5。
  • corr(varname1 varname2) [, covariance spearman taua taub by(byvarlist)]
    计算两个变量之间的相关系数,默认是 Pearson 相关系数。
    主要选项:
    • covariance:计算协方差。
    • spearman:计算 Spearman 秩相关系数。
    • tauataub:计算 Kendall 的 tau-A 和 tau-B 系数。
  • density(varname) [, width(#) start(#) frequency percent fraction by(byvarlist)]
    计算变量值的密度,按指定宽度进行分组。可以选择计算频率、比例或百分比。
  • gmean(exp) [, by(byvarlist)]
    计算几何平均值。
  • hmean(exp) [, by(byvarlist)]
    计算调和平均值。
  • nvals(varname) [, by(byvarlist) missing]
    计算变量中不同取值的个数。missing 选项可以包含缺失值。
  • outside(varname) [, by(byvarlist) factor(#)]
    识别离群值,计算与四分位数距离超过 factor() 的值。默认 factor() 为 1.5。
  • xtile(varname) [, percentiles(numlist) nquantiles(#) weights(varname) altdef by(byvarlist)]
    根据百分位数对变量进行分类。
    主要选项:
    • percentiles(numlist):指定百分位数。
    • nquantiles(#):指定分组数。
    • weights(varname):加权计算百分位数。
First and Last
  • first(varname) [, by(byvarlist)]
    返回变量的第一个非缺失值。by() 选项允许按组计算。
  • ilast(numvar), value(#) [, before | after by(byvarlist)]
    返回变量中指定值的最后一次出现的记录位置。
    主要选项:
    • before:返回最后一次出现之前的记录。
    • after:返回最后一次出现之后的记录。
  • lastnm(varname) [, by(byvarlist)]
    返回变量的最后一个非缺失值。
Random Numbers
  • mixnorm() [, frac(#) mu1(#) mu2(#) var1(#) var2(#)]
    生成一个混合正态分布的随机变量。
    主要选项:
    • frac(#):指定两种正态分布的混合比例。
    • mu1(#) mu2(#):指定两种正态分布的均值。
    • var1(#) var2(#):指定两种正态分布的方差。
  • rndint(), max(#) [min(#)]
    生成随机整数,范围由 min()max() 指定。min() 默认为 1。
  • rndsub() [, ngroup(#) {frac(#) | percent(#)} by(byvarlist)]
    随机分组,将观察值随机分配到不同的组中。
    主要选项:
    • ngroup(#):指定分组数。
    • frac(#):指定第一组包含的比例。
    • percent(#):指定第一组包含的百分比。
Row Operations
  • rall(varlist), cond(condition) [symbol(symbol)]
    检查 varlist 中所有变量是否满足 condition 条件,返回 1 或 0。
    主要选项:
    • symbol(symbol):指定占位符,默认是 @
  • rany(varlist), cond(condition) [symbol(symbol)]
    检查 varlist 中是否有任何变量满足 condition 条件,返回 1 或 0。
  • rcount(varlist), cond(condition) [symbol(symbol)]
    计算 varlist 中满足 condition 条件的变量数量。
  • rowmedian(varlist)
    计算 varlist 中所有变量的行中位数。
  • rownvals(numvarlist) [missing]
    计算每行中不同取值的数量。missing 选项可以包含缺失值。
  • rowsvals(strvarlist) [missing]
    计算每行中不同字符串值的数量。
  • rsum2(varlist)
    计算 varlist 中变量的和。
    主要选项:
    • allmiss:如果所有变量都缺失,则结果也为缺失。
    • anymiss:如果任意一个变量缺失,则结果为缺失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mengke25

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值