Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >年月日换算

年月日换算
EN

Stack Overflow用户
提问于 2017-04-09 17:12:50
回答 1查看 64关注 0票数 0

我有一个宽格式的数据集,其中包含从Q1 1996Q4 2016的事件季度计数。

每个季度的可变名称如下:

  • Q1 = yyyy0101_yyyy0401
  • Q2 = yyyy0401_yyyy0701
  • Q3 = yyyy0701_yyyy1001
  • Q4 = yyyy1001_yyyy0101

我有一个宏可以像这样转换它们:

代码语言:javascript
运行
AI代码解释
复制
local i = 1996

forvalues x = 1996/2016 { 
    local i = `i'+1
    gen count`x' = event_`x'0101_`x'0401 + event_`x'0401_`x'0701 + 
    event_`x'0701_`x'1001 + event_`x'1001_`i'0101
}

然后,我按年将数据折叠成一个长格式的单变量count

代码语言:javascript
运行
AI代码解释
复制
reshape long count, i(xvars) j(year)

现在我也想做同样的事,但每季度一次。

什么是宏来执行完全相同的过程,但捕获的计数之和在年度季度?如果我想做半年呢?

EN

回答 1

Stack Overflow用户

发布于 2017-04-10 04:03:22

在试图理解这一点时,我首先注意到(无论是迂腐的),您的代码不是Stata意义上的宏: SAS用户?)第二(更有建设性的),您的代码可以压缩为

代码语言:javascript
运行
AI代码解释
复制
forvalues x = 1996/2016 { 
    gen count`x' = event_`x'0101_`x'0401 + event_`x'0401_`x'0701 + event_`x'0701_`x'1001 + event_`x'1001_`x'0101
}

假定本地宏、ix运行在相同的值上。(这些都是Stata意义上的宏。)但我不会从那里开始。

正如您所说的,数据是宽格式的(我更喜欢用布局这个术语来减轻重载),所以主要的工作不是写循环,而是把reshape写到long。这个例子包含了一些猜测,并展示了一些技巧。如果没有可以使用的数据示例,我首先创建一个沙箱:

代码语言:javascript
运行
AI代码解释
复制
clear 
set obs 21
local y = 1 
foreach v in yyyy0101_yyyy0401 yyyy0401_yyyy0701 yyyy0701_yyyy1001 yyyy1001_yyyy0101 { 
    gen `v' = `++y' 
}
gen year = 1995 + _n 

rename (yyyy*) (count#), addnumber 

reshape long count, i(year) j(quarter) 

gen qdate = yq(y, q) 

egen ycount = total(count), by(year) 
egen qcount = total(count), by(quarter) 
gen half = cond(inlist(quarter, 1, 2), 1, 2)
egen hcount = total(count), by(year half) 

list if year < 1998, sepby(year) 

     +------------------------------------------------------------------+
     | year   quarter   count   qdate   ycount   qcount   half   hcount |
     |------------------------------------------------------------------|
  1. | 1996         1       2     144       14       42      1        5 |
  2. | 1996         2       3     145       14       63      1        5 |
  3. | 1996         3       4     146       14       84      2        9 |
  4. | 1996         4       5     147       14      105      2        9 |
     |------------------------------------------------------------------|
  5. | 1997         1       2     148       14       42      1        5 |
  6. | 1997         2       3     149       14       63      1        5 |
  7. | 1997         3       4     150       14       84      2        9 |
  8. | 1997         4       5     151       14      105      2        9 |
     +------------------------------------------------------------------+

这与您已经使用reshape long时所做的工作有何不同?主要是为了强调,无论你想要什么,在不同的时间尺度上,都可以在适当的地方产生。您不需要重复的collapse或同一数据集的不同版本。如何列出,列出或以其他方式处理重复将是不同的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43313657

复制
相关文章
OpenCV实现仿射变换
这样我们就获得了变换后的图像! 我们将会把它显示出来. 在此之前, 我们还想要旋转它...
流川疯
2022/12/02
7460
OpenCV实现仿射变换
仿射变换与透视变换
仿射变换保证物体形状的“平直性”和“平行性”。透视变换不能保证物体形状的“平行性”。仿射变换是透视变换的特殊形式。 将透视变换写成3*3矩阵形式,即为M; 以下面这张图为例,实现仿射变换,包括旋转,平
一棹烟波
2018/01/12
1.3K0
仿射变换与透视变换
已知仿射变换的系数,求仿射变换的反向系数
已知(ax,bx,cx),(ay,by,cy)为其仿射变换系数,则(X,Y)到(xx,yy)必然也存在仿射变换关系:
charlee44
2022/05/05
2650
OpenCV与仿射变换
拉伸、收缩、扭曲、旋转是图像的几何变换,在三维视觉技术中大量应用到这些变换,又分为仿射变换和透视变换。
种花家的奋斗兔
2020/11/12
1.1K0
仿射变换及其应用
单词 affine,读音:[ə'faɪn]。来自于英语affinity。英语词根fin来自于拉丁语finis,表示“边界,末端”,例如finish、final等单词。词头ad表示“去,往”,拼出名词affinity,本意为“接壤,结合”,用来指“姻亲,由于婚姻而产生的亲戚关系”,引申为“亲密关系,相似性”等 。
老齐
2021/12/15
2K0
仿射变换及其应用
仿射变换(affine transformation)
在 线性变换 中其实也提到了仿射变换,当时就定性了平面上二维仿射变换不是线性变换,因为原点会移动。
为为为什么
2023/03/19
1.3K0
仿射变换(affine transformation)
番外篇: 仿射变换与透视变换
常见的2D图像变换从原理上讲主要包括基于2×3矩阵的仿射变换和基于3×3矩阵透视变换。
CodecWang
2021/12/07
2.2K0
番外篇: 仿射变换与透视变换
【opencv实践】仿射变换和透视变换
上面这副图就是我们今天要处理的了,我们想把它从拍照视角变成鸟瞰图,这是机器人导航中的常用手段,以便在该平面上进行规划和导航。
周旋
2020/06/04
5.7K1
仿射变换及其变换矩阵的理解
这篇文章不包含透视变换(projective/perspective transformation),而将重点放在仿射变换(affine transformation),将介绍仿射变换所包含的各种变换,以及变换矩阵该如何理解记忆。
李拜六不开鑫
2019/05/31
3.8K0
数据增强之仿射变换
一般情况下,不同的图像任务和模型有不同的数据增强方法。然而比较通用的有图像的仿射变换,颜色抖动,水平/垂直翻转, 随机crop。
用户4363240
2019/11/26
1.8K0
数据增强之仿射变换
opencv仿射变换之获取变换矩阵
.getAffineTransform(src[],dst[])通过三点可以确定变换后的位置,相当于解方程,3个点对应三个方程,能解出偏移的参数和旋转的角度。
淼学派对
2023/10/14
4040
opencv仿射变换之获取变换矩阵
几种图像变换 刚体变换 仿射变换 投影变换
转自:https://www.cnblogs.com/bnuvincent/p/6691189.html
bye
2020/10/30
3.1K0
几种图像变换 刚体变换  仿射变换 投影变换
坐标系统仿射变换函数使用总结
Mac的AppKit坐标系统是已左下角为坐标原点,向右为X轴正向,向上为Y轴正向。
SheltonWan
2019/06/11
1.4K0
坐标系统仿射变换函数使用总结
图像处理的仿射变换与透视变换
  这一周主要在研究图像的放射变换与透视变换,目前出现的主要问题是需要正确识别如下图中的编码标志点圆心。 1.当倾斜角较小时:
3D视觉工坊
2020/12/11
1.4K0
图像处理的仿射变换与透视变换
仿射变换实现组合操作 抠图+缩放+旋转
前言          之前在工作中需要用仿射变换的方式来实现,用给定的bounding box(标注框)从一张图片 中扣出特定的区域,然后做旋转和缩放等特定操作。然后在网上搜索了一下与仿射变换相关的资料, 看了仿射变换的思想和一些例子,然后结合手头上的代码,做了一些实验,最后终于搞懂了如何实现。 实验代码(提供C++、Scala和Python三种语言的实现): 码云地址 Github地址 正文          根据给定的标注框从原图中裁剪出物体并且对裁剪出的图片做各种随机旋转和缩放变换, 如果这几个步骤
Ldpe2G
2018/07/09
1.8K0
opencv仿射变换之图像平移
仿射变换是图像旋转,缩放,平移的总称。具体的做法是通过一个矩阵和原图坐标进行计算,得到新的坐标,完成变换。所以关键就是这个矩阵。
淼学派对
2023/10/14
2210
opencv仿射变换之图像平移
仿射变换实现组合操作 抠图+缩放+旋转
之前在工作中需要用仿射变换的方式来实现,用给定的bounding box(标注框)从一张
Ldpe2G
2018/06/22
8690
iOS开发之仿射变换示例总结
本篇博客比较简单,但还是比较实用的。其中的示例依然使用Swift3.0来实现,该博客算是下篇博客的一个引子,因为我们下篇博客要介绍使用Swift开发iOS应用中常用的一些Extension。而在这些Extension中的Image Extension中会用到仿射变换的东西来对图片进行处理。所以本篇博客就先将fang放射变换(CGAffineTransform)的东西拎出来单独的过一下,这样在下篇博客中就可以减少对仿射变换的介绍了。 在之前的博客中,我们聊过仿射变换的东西,不过是使用的放射变换来实现的动画,关
lizelu
2018/01/11
1.3K0
iOS开发之仿射变换示例总结
【走进OpenCV】重映射与仿射变换
其中的 f 就是映射方式,也就说,像素点在另一个图像中的位置是由 f 来计算的。
小白学视觉
2019/10/24
1.2K0
仿射函数_仿射空间
今天看书用到仿射函数,不明白,上网查资料,貌似网上这方面资料也不是很多,有的也是讨论性质,不太准确。找到一些英文资料,现总结如下:
全栈程序员站长
2022/09/20
8590

相似问题

另一个变量中的Javascript变量

115

在另一个变量中使用的Javascript函数变量

31

使用变量命名另一个变量javascript

323

Javascript使用变量调用另一个变量

20

在javascript中设置另一个javascript的变量

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档